free (static_array)

rkiesling rkiesling@earthlink.net
Tue Jul 1 09:08:00 GMT 2008


Denys Vlasenko:
[ Charset ISO-8859-1 converted... ]
> On Tuesday 01 July 2008 09:24, Sajish V wrote:
> > Thanks for the reply, Denys.
> > My question was, why doesn't gcc catch it during compilation? It is clear that we are trying to free a variable from stack. Shouldn't gcc flag an error for this during compilation?
> 
> How gcc can know that free() is not supposed to be used like that?

IIRC, in certain circumstances, the compiler prints a warning when a
program tries to use a local variable or parameter, allocated on the
stack, outside of its scope.  However, in many cases, the compiler
cannot make assumptions about where the space is actually allocated.

A program can't free a static variable, anyway, only the space pointed
to by a variable.  So the compiler itself would not consider that to
be invalid.

-- 
Ctalk Home Page: http://www.ctalklang.org



More information about the Gcc-help mailing list