Will sys_free work for big char pointer arrays??
Ex:char * collection[1024];
No, because its statically allocated. Only use sys_free where you have used sys_malloc.
Thats not optimization, its bug fixing, cause sooner or later memory leaks will disgracefully end your application.
Using pointers wherever possible instead of arrays
Arrays are pointers to memory areas. So what is this supposed to do?