Three memory allocation and free functions are predefined in Smac (see also strdup() §6.6.3 page ):
malloc returns a pointer on a block of at least size bytes correctly aligned, or 0 on failure (see §6 page ).
void * calloc(int nelt, int eltsize)
calloc returns a pointer to a zero initialized block able to memorize nelt elements of size eltsize, or 0 on failure.
free releases a block allocated by malloc or calloc.
For performance reasons, a copy function has also been predefined:
char * memcpy(char * to, char * from, int n)
memcpy copies n bytes from from to to.