Hi,
lemming tried to answer you.
Quote:

And you don't need to delete the string pointers as they are on the stack and get deleted when the function ends, but the strings they are pointing to.

The stack is the memory where local variables and function parameters are allocated.

If you create a new engine object and save its memory address in a pointer, there are two actors in the scene: The object and the pointer. All created objects have to be removed, you know. But pointers will probably be local and are automatically managed as simple variables.

Code:
STRING *new_string ( char *text )
{
   STRING *string = str_create ( text );
   return string;
}


'str_create' returns the address of a newly create string and the code saves the address in the pointer. The pointer is local and is allocated into the stack but the string created by 'str_create' is a global object that has to be deleted at the end.

I guess this confusion comes from the literature around liteC. In order to make things easier to understand it is said that the pointer is the object itself. But no, it is not.