From: Luke D. <cod...@ho...> - 2004-04-01 07:09:38
|
>From: Stefan Viljoen <ry...@in...> >Reply-To: min...@li... >To: min...@li... >Subject: [Mingw-users] Fwrite debacle - Luke Dunstan >Date: Wed, 31 Mar 2004 21:38:00 +0200 > >Luke & all > >Hi - thanks for taking the time to troubleshoot my code. > >(Note to all - the bitmask stuff is code I got off the net - don't know >what >all those preproccessor macro stuff and #defines at the top of my test >program mean yet) > >SO - let met get this straight: > >1. I have 48 000 000 binary digits to keep track of. >2. So if I calloc (h * ((w - 1) / BITW_LEN + 1), sizeof (BITW)) (h being >12000 >and w being 4000) the compiler knows that I want 48 000 000 bits BUT the >actual size in 32 bit ints (32 bits per int obviously) is 48 000 000 / 32 >so >1 500 000 ints is the actual size of the data? It is the "size" passed as the first argument to calloc() and as the third argument to fwrite(), but it's not in bytes, as you know. Technically, the compiler itself doesn't know anything about what you want, but calloc() knows because of the second argument. Make sure you read the documentation for calloc() if you haven't already. >Darn.. thanks Luke! This explains it much more clearly. So sizeof(BITW) >will >be what? 1 byte? sizeof(BITW) == sizeof(int) == 32 bits / 8 bits per byte == 4 bytes >Anyway, thanks - now I can be assured if I save 1 500 000 ints I AM in fact >saving my whole buffer, so reading 1 500 000 will load it again in its >entirety. > >Phew - and I wish to apologize that I impinged MingW. As usual, the >programmer >is at fault, not the compiler... :) > >Kindest regards, >-- >Stefan Viljoen >Polar Design Solutions >Software Support Technician No problem. Luke _________________________________________________________________ Personalise your phone with chart ringtones and polyphonics. Go to http://ringtones.com.au/ninemsn/control?page=/ninemsn/main.jsp |