Segmentation fault when free
unga888 at yahoo.com
Sat Sep 20 09:06:09 UTC 2008
--- On Sat, 9/20/08, Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
> > 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 *
> char buffer;
> return buf;
This problem happens very early stage of my program. Its the very first free() develops a problem.
I checked again, up to the this problematic free(), functions return newly allocated strings properly:
char *f( )
char *newstr = NULL;
newstr = (char *) malloc(p - sp + 1);
if (newstr == NULL)
Can a yet not executed wrong free() elsewhere cause a problem of this nature?
More information about the freebsd-questions