|
In debug put a break point on malloc line. If after that it isn't null, and at free() line it is null, your pointer storage is being stumped on. If pointer 'znd' is local to the function, check which variables precede it and see where you set it/them. This is probably where the corruption happens. If 'znd' is not local pointer but passed in by "copy", then your stack is being corrupted. In any case, double check your code for walking out of boundary when setting your variables. Elvis -----Original Message----- Subject: [C400-L] Fw: Free error. Can some one tell me what I'm doing wrong. I use MALLOC to allocate some storage, then I call a procedure. When I return from the procedure I use free to de-allocate the memory block. My code is as follows: /* Convert field to zoned. */ zlen = sizeof(decimal (DEC_DIG, 0) ) * 2 - 2; znd = malloc(zlen); result = QXXBTOZ(znd, zlen, bin, blen, hassign); if ( result ) return result; result = QXXZTOC(chr, clen, znd, zlen, dp); /* Free allocated memory. */ free(znd); But I get the following errors: The requested heap space operation is invalid. The pointer parameter passed to free or realloc is not valid. Thanks for your help. Bobby.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.