l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
September 2: Social gathering
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2002 May 08 17:10

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Must one free() in C?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Must one free() in C?



Freeing memory is (was?) a requirement with DOS based OS's,
and there are utilities out there to check your code for memory leaks.

If this program were ported to DOS/Windows, I would rewrite it as:

if  ( ! ( tmp1 = (int *)malloc(5) ) )
{
    fprintf( stderr, "Out of memory\n" );
    exit( 1 );
}

if ( ! ( tmp2 = (int *)malloc(6) ) )
{
    fprintf( stderr, "Out of memory\n" );
    free( tmp1 );
    exit( 1 );
}

-- Tim Riley


"Mark K. Kim" wrote:

> It's not a Linux specific question, for it matters not the answer under
> Linux for Linux frees regardless of one's intervention, but 'tis a valid
> question so I believe...
>
> Let's say you got a code like this (in C):
>
>    tmp1 = (int*)malloc(5);
>    tmp2 = (int*)malloc(6);
>    if(!tmp1 || !tmp2)
>    {
>       fprintf(stderr, "Out of memory!\n");
>       exit(1);
>    }
>
> If tmp1 is allocated (but not tmp2) at the time of exit(1), is it
> guaranteed to be freed by the exiting process?  Or does one must free tmp1
> before exitting?  The answer doesn't really matter on Linux (or most
> modern systems, I suppose)  since it frees memory nonetheless, but is that
> the standard?  The impliciation of requiring calls to free() before
> exitting is enormous -- one would have to keep track of all the allocated
> memory before exitting from any error condition!
>
> Thanks in adv!
>
> -Mark
>
> --
> Mark K. Kim
> http://www.cbreak.org/
> PGP key available upon request.
>
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
EDGE Tech Corp.
For donating some give-aways for our meetings.