strange behavior with malloc and free

Ferhat Kurtulmuş aferust at gmail.com
Fri Oct 11 10:37:02 UTC 2019


Platform: windows
Compiler version: ldc2-1.14.0-windows-x64 or 
ldc2-1.17.0-windows-x64

When I compile and run the following code. values of a[] is still 
accessible after calling free(a) somehow. Using dmd code prints 
some random memory values as expected. Is this a problem with ldc 
or am I lack of some information about ldc?

code:
```
import core.stdc.stdio;
import core.stdc.stdlib;

int main() @nogc nothrow{

     int* a = cast(int*)malloc(2*int.sizeof);
     a[0] = 1;
     a[1] = 2;

     free(a);

     printf("%d - %d \n", a[0], a[1]); // data is still accessible!

     return 0;
}
```


More information about the digitalmars-d-ldc mailing list