Segmentation fault when free [SOLVED]
Giorgos Keramidas
keramida at ceid.upatras.gr
Sat Sep 20 22:15:49 UTC 2008
On Sat, 20 Sep 2008 07:04:03 -0700 (PDT), Unga <unga888 at yahoo.com> wrote:
>On Sat, 9/20/08, Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
>>> : free(0xbfbfc9c9)
>>>
>>> 1. This clearly shows my program is trying to free a memory that
>>> has not been allocated. How it could have happened?
>>
>> Aha. This looks remarkably like an address in the runtime stack. It
>> usually happens when you have a function that returns the address of
>> a 'local' variable, instead of a newly allocated heap area, i.e.:
>>
>> char *
>> function(void)
>> {
>> char buffer[100];
>>
>> return buf;
>> }
>
> This was indeed the case, worst yet, I was trying to free a part of
> the buffer (as per your example above) by mistake which was not
> allocated by malloc.
>
> Thank you all who helped me.
Great! You are welcome, of course :)
More information about the freebsd-questions
mailing list