[Mono-devel-list] reading char * from extern function
A Rafael D Teixeira
rafaelteixeirabr at hotmail.com
Fri May 23 21:53:02 EDT 2003
>From: Marcus <mathpup at mylinuxisp.com>
>When calling into existing libraries, it is not feasible to alter the
>code to change their memory-management policies.
>If I create "QObject* obj", then "name = obj->callName()" will return a
>char*". At this point, it is not permissible to call "free(name)".
> > Well, thats true. Functions should simply duplicate the string before
> > they return if needed. Else you have a memory leak which is impossible
> > to avoid.
In that case you have to write wrappers that copy the returned buffer to
some memory that can be freed, either in C/C++ code using memory form malloc
or in C# code using memory from the gc heap.
Mono, MonoQLE Hacker
The new MSN 8: smart spam protection and 2 months FREE*
More information about the Mono-devel-list