---
name: "al_ref_ustr"
section: "3"
platform: "linux"
package: "allegro"
version: "5.2.11.3-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/al_ref_ustr"
---

# al\_ref\_ustr(3)

Allegro 5 API

## NAME

al\_ref\_ustr - Allegro 5 API

## SYNOPSIS

-

  ```
  #include <allegro5/allegro.h>
  const ALLEGRO_USTR *al_ref_ustr(ALLEGRO_USTR_INFO *info, const ALLEGRO_USTR *us,
     int start_pos, int end_pos)
  ```

## DESCRIPTION

Create a read-only string that references the storage of another [ALLEGRO\_USTR(3)](/ALLEGRO_USTR/3.md) string. The information about the string (e.g. its size) is stored in the structure pointed to by the `info` parameter. The new string will not have any other storage allocated of its own, so if you allocate the `info` structure on the stack then no explicit “free” operation is required.

The referenced interval is \[`start_pos`, `end_pos`). Both are byte offsets.

The string is valid until the underlying string is modified or destroyed.

If you need a range of code-points instead of bytes, use [al\_ustr\_offset(3)](/al_ustr_offset/3.md) to find the byte offsets.

## SEE ALSO

[al\_ref\_cstr(3)](/al_ref_cstr/3.md), [al\_ref\_buffer(3)](/al_ref_buffer/3.md)
