From: "Matthew Conte" Newsgroups: comp.os.msdos.djgpp Subject: SIGSEGV under DOS, but not Win9x? Lines: 33 X-Newsreader: Microsoft Outlook Express 4.72.3155.0 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3155.0 Message-ID: Date: Sun, 4 Oct 1998 13:36:15 -0400 NNTP-Posting-Host: 24.92.55.44 X-Complaints-To: abuse AT nycap DOT rr DOT com X-Trace: proxye1.nycap.rr.com 907522551 24.92.55.44 (Sun, 04 Oct 1998 13:35:51 EDT) NNTP-Posting-Date: Sun, 04 Oct 1998 13:35:51 EDT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp [Please reply to the group, email is invalid, sorry if this bothers you.] For some reason, the following code segfaults under plain DOS, but not in a DOS box. Here is the smallest snippet possible. /* begin code */ typedef unsigned char byte; typedef struct { byte *Data; int W,H; } BITMAP; int VGANewBitmap(BITMAP *bmp,int W,int H) { bmp->Data = (byte *)malloc(W*H); if (bmp->Data==NULL) { bmp->W=bmp->H==0; return -1; } memset(bmp->Data,0,W*H); bmp->W=W; bmp->H=H; return 0; } /* end code */ I get an immediate segfault if I use the declarations: BITMAP *bitmap; VGANewBitmap(bitmap,256,240); This happens only under DOS+cwsdpmi, but not under Win9x. I absolutely can not figure this out. Can anyone shed some light on this? Thanks, Matt Conte.