Allocates the space needed for a ‘Foo’, and performs any needed initialisation on that ‘Foo’ (including allocating resources if necessary). Returns the address of the new variable, or a null pointer if there was insufficient memory.
Releases any resources used by foo, and then frees foo. foo must have been allocated by ‘foo_create’. The memory referenced by foo is then no longer available to the program. Failing to call this function when you have finished with a ‘Foo’ created by ‘foo_create’ will cause memory leaks and possibly other problems.
[1] This represents a significant change from the source-level interfaces in earlier versions of Libretto. Previously, these typedef names ended with the characters ‘_t’. However, identifiers of that format are reserved by the ANSI C standard (and the closely related ISO C89 standard) for future extensions; they are therefore no longer used in Libretto.