From: califax AT wupperonline DOT de (Klaus Petzold) Newsgroups: comp.os.msdos.djgpp Subject: Strange results with own maxheapblock()-function Date: Fri, 28 Aug 1998 21:17:34 GMT Organization: Customer of SpaceNet GmbH Message-ID: <35e71d68.66941@news.space.net> NNTP-Posting-Host: line316.kdt.de Lines: 41 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Hi, I tried to write a function, which finds out the size of the largest block I can allocate on the heap. On my system it gives back 33558524 bytes, but with "char* ptr = (char *)malloc(size);" it is possible to allocate 67112956 bytes. Has anyone an idea why maxheapblock() fails? Klaus #include #include unsigned long maxheapblock() { unsigned long adder = 1024 * 1024; unsigned long memsize = 0; char *cptr; do { do { memsize += adder; cptr = (char *)malloc(memsize); free(cptr); } while (cptr); memsize -= adder; adder /= 2; } while (adder); return(memsize); } int main() { cout << "free memory: " << maxheapblock() << " byte(s)" << endl; }