On 04/01/2012 02:38 AM, [email protected] wrote:
> https://github.com/skrapsrwt/dbmail-memcache/
I looked at the 'push change and added some comments.
Most importantly you need to understand C doesn't have automatic
allocation/de-allocation of memory like PHP does.
If you want to assign something to a chunk of memory that memory must be
allocated, either on the 'stack', or on the 'heap'.
The stack is local to the scope. So it can be passed 'down-stream' if
you are careful, but it can never be returned to the calling scope.
The heap is where malloc/free do their thing: a global memory space that
you can use - if you use it following the rules. Heap memory is always
safe to pass around.
- you must allocated everything you need.
- for each malloc call, there must be a free call.
stack allocation:
char foo[128]; // char array on the stack you can assign 128 bytes to
char *foo = g_new0(char, 128); // same size char array on the heap
g_new0 is a simple wrapper around calloc. It allocates memory and cleans
it out.
If you allocate on the stack it is always a good idea to clean it
explicitely:
char foo[128];
memset(foo, 0, sizeof(foo));
--
________________________________________________________________
Paul J Stevens pjstevns @ gmail, twitter, skype, linkedin
* Premium Hosting Services and Web Application Consultancy *
www.nfg.nl/[email protected]/+31.85.877.99.97
________________________________________________________________
_______________________________________________
Dbmail-dev mailing list
[email protected]
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev