delorie.com/archives/browse.cgi | search |
Xref: | news2.mv.net comp.os.msdos.djgpp:8107 |
From: | terra AT diku DOT dk (Morten Welinder) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Scanf doesn't work -- sure it does |
Date: | 31 Aug 1996 15:25:50 GMT |
Organization: | Department of Computer Science, U of Copenhagen |
Lines: | 25 |
Sender: | terra AT tyr DOT diku DOT dk |
Message-ID: | <509lhu$1t0@vidar.diku.dk> |
References: | <01bb974a$24b5f820$24c5b7c7 AT platko DOT ix DOT netcom DOT com> |
NNTP-Posting-Host: | tyr.diku.dk |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
"Bob Platko" <platko AT ix DOT netcom DOT com> writes: >My code works fine in Borland, but not in DJGPP! What's wrong? Your program. If you compile your program with "gcc -Wall -O2 -c foo.c" you will see foo.c: In function `main': foo.c:16: warning: unsigned int format, different type arg (arg 2) foo.c:18: warning: unsigned int format, different type arg (arg 2) foo.c:48: warning: implicit declaration of function `getch' So you are passing a pointer to the wrong kind of object to scanf(). Therefore scanf() overwrites memory you did not mean to. Nuke the "short" and you will have a correct program. Morten PS: There are some problems with scanf() if I remember things right. They have to do with the return value and are being worked on or have already been solved for the next release.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |