`free` for struct with C bindings.

ag0aep6g anonymous at example.com
Mon May 14 22:12:41 UTC 2018


On 05/15/2018 12:03 AM, Jonathan wrote:
> ```
> xcb_generic_event_t*    event;
> event = xcb_wait_for_event (connection);
> free (event);
> ```
> 
> The problem is the `free` function.  It is not provided by the library 
> but is part of the C standard library (in stdlib.h).

D has the C functions in core.stdc. So:

     import core.stdc.stdlib: free;

[...]
> I tried using the 
> `core.memory.GC.free` function from the D standard library and it 
> compiled and ran but that does not necessarily mean there are not memory 
> leaks (it also ran with the line entirely removed).

core.memory.GC.free is a different function. It works on GC-managed 
pointers. Don't call it on pointers that come from C libraries.


More information about the Digitalmars-d-learn mailing list