Managing malloced memory

Imperatorn johan_forsberg_86 at hotmail.com
Mon Oct 11 12:28:21 UTC 2021


On Monday, 11 October 2021 at 12:20:27 UTC, jfondren wrote:
> On Monday, 11 October 2021 at 12:09:07 UTC, Imperatorn wrote:
>> On Wednesday, 6 October 2021 at 18:06:38 UTC, anon wrote:
>>> I interface to a C library that gives me a malloced object. 
>>> How can I manage that pointer so that it gets freed 
>>> automatically.
>>> What I've thought of so far:
>>> * scope(exit): not an option because I want to return that 
>>> memory
>>
>> Explain again why scope exit isn't an option
>
> The explanation is "I want to return that memory".
>
>
> ```d
> int* not_an_option() {
>     import core.memory : pureMalloc, pureFree;
>
>     int* p = cast(int*) pureMalloc(int.sizeof);
>     scope (exit)
>         pureFree(p);
>     return p;
> }
>
> unittest {
>     not_an_option()[0] = 1;
> }
> ```
>
> valgrind: Invalid write of size 4

Oops


More information about the Digitalmars-d-learn mailing list