Provided by: allegro5-doc_5.2.3.0-1_all bug

NAME

       al_cstr - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro.h>

              const char *al_cstr(const ALLEGRO_USTR *us)

DESCRIPTION

       Get  a  char *  pointer  to  the  data  in  a  string.   This  pointer  will  only  be  valid  while  the
       ALLEGRO_USTR(3alleg5) object is not modified and not destroyed.  The pointer may be passed  to  functions
       expecting C-style strings, with the following caveats:

       • ALLEGRO_USTRs  are  allowed  to  contain  embedded  NUL  ('\0')  bytes.  That means al_ustr_size(u) and
         strlen(al_cstr(u)) may not agree.

       • An ALLEGRO_USTR may be created in such a way that  it  is  not  NUL  terminated.   A  string  which  is
         dynamically  allocated  will  always  be  NUL  terminated,  but a string which references the middle of
         another string or region of memory will not be NUL terminated.

       • If the ALLEGRO_USTR references another string, the returned C string will  point  into  the  referenced
         string.  Again, no NUL terminator will be added to the referenced string.

SEE ALSO

       al_ustr_to_buffer(3alleg5), al_cstr_dup(3alleg5)