ftp.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2011/07/20/13:45:27

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
Date: Wed, 20 Jul 2011 20:45:11 +0300
From: Eli Zaretskii <eliz AT gnu DOT org>
Subject: Re: printf statement causes error message
In-reply-to: <j071gc$s6g$1@news.albasani.net>
X-012-Sender: halo1 AT inter DOT net DOT il
To: djgpp AT delorie DOT com
Message-id: <83mxg8vobc.fsf@gnu.org>
References: <j071gc$s6g$1 AT news DOT albasani DOT net>
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> From: Mok-Kong Shen <mok-kong DOT shen AT t-online DOT de>
> Date: Wed, 20 Jul 2011 18:58:58 +0200
> Bytes: 1820
> 
> Could some expert kindly tell why the one printf statement in the
> main program below causes the trouble?

Because you try to `free' a pointer whose value is garbage?

Here:

> void test()
> { int *hh;  <<<<<< uninitialized pointer, value is garbage
>    printf("abc\n"); free(hh); printf("def\n");
> }
> 
> int main()
> { // If the following printf statement is commented out
>    // then no error message ("Exiting due to signal SIGSEGU")
> 
>    printf("calling test\n");

It has nothing to do with `printf' per se: simply, a call to `printf'
allocates some memory internally, and then the garbage in hh is
different, so it causes a crash.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019