Can't free memory on exiting?
    breezes 
    wangyuanzju at gmail.com
       
    Mon Oct 31 21:10:08 PDT 2011
    
    
  
I wrote the following program to test malloc/free:
import std.stdio;
import core.memory;
class ExternalMemoryHandle {
	void *p;
	this() {
		p = GC.malloc(1024);
	}
	~this() {
		GC.free(p);
	}
}
void main() {
	auto test = new ExternalMemoryHandle();
	writeln("exiting");
}
The philosophy of this program is use class ExternalMemoryHandle as a handle
to some manually managed memory. If a ExternalMemoryHandle is constructed, it
alloc some memory. When this ExternalMemoryHandle is garbage collected, it
free those memory.
However it will fail with OutOfMemoryError. I got the following error when
running this program:
exiting
core.exception.OutOfMemoryError
What's wrong with this tiny program?
    
    
More information about the Digitalmars-d-learn
mailing list