On Sat, 3 May 2008 09:33:17 -0700 (PDT), vippstar@[EMAIL PROTECTED]
wrote:
>On May 3, 7:21 pm, Igal <igal.al...@[EMAIL PROTECTED]
> wrote:
>> hay, i'm doing this program. having problem wiht realloc in the
>> function that reads data structures into array (pointer - bp2), this
>> happens after reading the second record. when call to realloc.
>> i can't figure out what's wrong, think it's soming got to do with
>> freeing bp2.
>> and something called "corruption of the heap".
>>
>> book* LoadBookData(unsigned *size)
>> {
>> FILE* fp;
>> int n = 0;
>> book *bp2 = NULL;
>>
>> //open book data file
>> fp=fopen("book.bin","rb");
>> if (fp == NULL)
>> {
>> bp2 = (book*)calloc(0, sizeof(book));
>> return bp2;
>Don't cast calloc. I'm not sure what the results of calloc(0, N) are,
>but if they are similar of malloc(), then that pointer is not really
>reliable.
>You most likely want something like this:
> return calloc(0, sizeof book);
book is a type. The parentheses are required. Other than the cast
and parentheses, your code is identical to the OP's. Surely not your
intent.
Remove del for email


|