From: DavMac AT iname DOT com (Davin McCall) Newsgroups: comp.os.msdos.djgpp Subject: Re: help me with this bmp loader program please Date: Mon, 16 Aug 1999 05:19:09 GMT Organization: Monash Uni Lines: 32 Distribution: world Message-ID: <37b79ddd.20183500@newsserver.cc.monash.edu.au> References: <7p83hn$cml$1 AT nnrp1 DOT deja DOT com> NNTP-Posting-Host: damcc5.halls.monash.edu.au X-Trace: towncrier.cc.monash.edu.au 934780691 27728 130.194.198.138 (16 Aug 1999 05:18:11 GMT) X-Complaints-To: abuse AT monash DOT edu DOT au NNTP-Posting-Date: 16 Aug 1999 05:18:11 GMT X-Newsreader: Forte Free Agent 1.1/32.230 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Easy. You declare "char *pix" in function "main" and pass it to "GetBitmap" without actually setting it to a suitable value (eg: char *pix = malloc(BIG_NUMBER); ) GetBitmap then stores values at the memory pointed to by pix, which could be anywhere... your program crashes! A better way of doing this would be to have: int GetBitmap(char* file, char** pix, int *width, int * height); ("pix" parameter is now char **, not char *) and then in the code for GetBitmap: *pix = malloc( paddedWidth * bmpheader.biHeight ); //********problem area *************// for(int i=0; i < bmpheader.biHeight; i++) fread((*pix)[i*paddedWidth] , paddedWidth,1 , bmpfile); /* notice change from "pix" to "{*pix)" in above line */ //************************************ Davin. [original snipped] __________________________________________________________ *** davmac - sharkin'!! davmac AT iname DOT com *** my programming page: http://yoyo.cc.monash.edu.au/~davmac/