Syscall index: 0x1F42
Function signature: void sys_free(void *p)
Frees space allocated on the heap with sys_malloc.
- p - pointer to block of heap memory to free.
The heap implementation on the Prizm appears to have some bugs; it also appears to not be able to optimize heap allocation so that fragmentation is avoided. See this forum thread for more information and discussion.
The stack can provide a bigger continuous RAM area than the heap (up to about 500 KiB, depending on static RAM requirements, versus about 128 KiB). This, plus the limitations described above, means that to get the most out of the memory available to add-ins, one has to use non-standard ("incorrect") practices such as preferably using the stack instead of the heap.