From: bluehyacinth AT usa DOT net (Samuel) Newsgroups: comp.os.msdos.djgpp Subject: Runtime error with simple program. Please help! Date: Fri, 29 May 1998 01:10:08 GMT Organization: Vision Online Lines: 77 Message-ID: <356f0ae0.987008@news.vol.net> NNTP-Posting-Host: c11-21.vol.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk I'm learning C now and use DJGPP as the compiler for the exercises I do. Everything went fine until I go to array. I compiled the exercise using "gcc -o ex4.exe ex4.c". The compiler reported no error found. But when I run the executable, (both under the win95 dos box and real dos 6.20 with cwsdpmi), I got the following runtime error: ====================================================== F:\work>ex4 Exiting due to signal SIGSEGV General Protection Fault at eip=0000009f eax=000000b8 ebx=0000000a ecx=00000063 edx=0010a430 esi=0000006e edi=0010a458 ebp=0010a4a8 esp=0010a414 program=F:\WORK\EX4.EXE cs: sel=00a7 base=836c7000 limit=0011ffff ds: sel=00af base=836c7000 limit=0011ffff es: sel=00af base=836c7000 limit=0011ffff fs: sel=0087 base=00008f70 limit=0000ffff gs: sel=00c7 base=00000000 limit=ffffffff ss: sel=00af base=836c7000 limit=0011ffff Call frame traceback EIPs: 0x0000009f 0x00001fca F:\work> ====================================================== The program I wrote for exercise is really really simple. I don't understand why I got such an error. I did a search in the faq that came with the package for SIGSEGV, but what I found didn't solve my problem. The DJGPP I used is 2.01 Please help. Thanks!! ps the source code ------------------------------------------------------ #include #include unsigned _stklen = 1048576; /* need a 1MB stack */ int _crt0_startup_flags = _CRT0_FLAG_FILL_SBRK_MEMORY; /* the above two lines were added after reading the faq */ /* but didn't solve the problem; probably the situation */ /* described in the faq wasn't the same as mine. */ int main() { int array1[10], array2[10], arrays[10]; int index; for (index = 0; index <= 9; index = index + 1) { array1[index] = (index + 1) * (index + 1); array2[index] = index + 1; } for (index = 0; index <= 9; index = index + 1) arrays[index] = array1[index] + array2[index]; prinft(" index array1 array2 arrays\n"); /* print the header */ prinft("======= ======== ======== ========\n"); for (index = 0; index <= 9; index++) prinft("%4d %5d %5d %5d \n",index, array1[index], array2[index], arrays[index]); return 0; } ------------------------------------------------------