msc memory allocation problem
craig.s.curtin
curtin at cbnewse.ATT.COM
Sat Feb 17 04:10:52 AEST 1990
hello MSC5X gurus
this is using MSC5.1, MS-DOS 4.01.
i am having a memory problem with calloc/free and have had no
success checking that the memory has been returned to MS-DOS.
i have been trying to use the msc function _memavl() (telling
you how much memory is available) and get the same value
from _memval() regardless when it is called. (actually i
would like to do sbrk(0) and verify where the heap point is
but this does not work for the /AL (Large) model according
to the manual.
scenerio:
>
>Buffer *bp;
>
(A) >fprintf(stderr,"FREE memory %u\n",_memavl());/*print current value*/
>
>bp = (Buffer *) calloc(1, sizeof (Buffer));/* allocate memory */
>
(B) >fprintf(stderr,"FREE memory %u\n",_memavl());/*print new current value*/
>
>free(bp);/* return memory */
>
(A) >fprintf(stderr,"FREE memory %u\n",_memavl());
>
my feeling is that B should be:
B = A-sizeof(Buffer);
but when it is executed A=B;
the program runs fine otherwise. but i was getting memory allocation
error cannot load command.com after execution. this occurs only
when i put the above code in a loop 10,000 times. (just a for loop)
(i wanted to make darn sure that the memory was getting free'd up
after something weird is happening)
thanks for the help
any questions/comments/flames please respond via e-mail. thanks for
craig curtin
att!ihlpy!curtin
More information about the Comp.lang.c
mailing list