Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP
id AA5276 ; Wed, 23 Dec 92 04:01:26 EST
Xref: sserve comp.lang.c:37065 comp.unix.bsd:9221
Path: sserve!manuel.anu.edu.au!munnari.oz.au!hp9000.csc.cuhk.hk!saimiri.primate.wisc.edu!sdd.hp.com!spool.mu.edu!yale.edu!ira.uka.de!Germany.EU.net!rrz.uni-koeln.de!unidui!du9ds3!veit
From: veit@du9ds3.fb9dv.uni-duisburg.de (Holger Veit)
Newsgroups: comp.lang.c,comp.unix.bsd
Subject: Re: Segmentation faults
Date: 21 Dec 92 08:11:12 GMT
Organization: Uni-Duisburg FB9 Datenverarbeitung
Lines: 36
Message-ID: <veit.724925472@du9ds3>
References: <1gricmINNsl@ub.d.umn.edu> <1992Dec18.134225.20548@Logix.DE>
Reply-To: veit@du9ds3.fb9dv.uni-duisburg.de
NNTP-Posting-Host: du9ds3.fb9dv.uni-duisburg.de
In <1992Dec18.134225.20548@Logix.DE> jpm@Logix.DE (Jan-Piet Mens) writes:
>In <1gricmINNsl@ub.d.umn.edu> cbusch@ub.d.umn.edu (Chris) writes:
>> Why is the following code producing a segmentation fault???
>>I am compiling this code on an Encore Multimax running UMAX 4.3 Unix.
>Doesn't matter where you compile it is bad anyway...
>void writexy(x,y,s)
>int x, y;
>char *s; /* OTHERWISE DEFAULTS TO int !!! */
>{
> printf("\33[%d;%dH%s",y,x,s);
>}
>[ BTW, how about termcap/terminfo ? ]
>--
> __ _____ __ __
> | || _ \ | \/ | Logix GmbH jpm@Logix.DE
> __| || ___/ | | Moritzstrasse 50, +49-611-309797 jpm@logixwi.UUCP
>|_____||__| |__||__| D-6200 Wiesbaden ...!uunet!mcsun!unido!logixwi!jpm
This is a real problem where sizeof(int) != sizeof(char*), for instance with
Turbo C or Microsoft C or similar 16bit junk. But if you compile this
with a 32bit K&R compiler, and sizeof(int)==sizeof(char*) (=4), it won't see
a difference, because it will just take 32bit from the parameter stack
and push it as a 32bit argument to printf.
The compiler cannot find out the real expected type (it cannot do parsing
of the format string in general!).
Holger
--
| | / Dr. Holger Veit | INTERNET: veit@du9ds3.fb9dv.uni-duisburg.de
|__| / University of Duisburg |
| | / Dept. of Electr. Eng. | "Understand me correctly:
| |/ Inst. f. Dataprocessing | I'm NOT the WIZARD OF OS" (Holger)