Date: Tue, 23 Oct 2007 19:00:42 -0700 From: Garrett Cooper <youshi10@u.washington.edu> To: Bruce Cran <bruce@cran.org.uk>, questions@freebsd.org Subject: Re: Mentor for C self study wanted Message-ID: <471EA74A.6060206@u.washington.edu> In-Reply-To: <471E7778.4060909@cran.org.uk> References: <200710232044.53240.h.schmalzbauer@omnisec.de> <20071023220134.3abd635e@epia-2.farid-hajji.net> <20071023162454.93851854.wmoran@potentialtech.com> <200710232324.09851.h.schmalzbauer@omnisec.de> <20071024002649.6cc41512@epia-2.farid-hajji.net> <471E7778.4060909@cran.org.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Cran wrote: > cpghost wrote: > >> There's a mismatch here: scanf("%d", ...) expects a pointer to int, >> while &nnote is a pointer to a short. Normally, an int occupies more >> bytes in memory than a short (typically sizeof(int) == 4 on 32bit >> platforms, and sizeof(int) == 8 on 64bit platforms; while typically >> sizeof(short) == 2). > > I think short and int stay the same on both 32 and 64 bit platforms, > while it's only long that gets bumped to 8 bytes. At least that seems > to be what happens on FreeBSD amd64. > > -- > Bruce No... you're only safe using int32, int64, etc. Just for grins try compiling a program like this: #include <stdio.h> int main() { printf("%d\n", sizeof(int)); return 0; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?471EA74A.6060206>