读书人

gcc 编译出现的情况。各位帮帮忙啊该如

发布时间: 2012-03-27 13:44:24 作者: rapoo

gcc 编译出现的情况。各位帮帮忙啊。。。急啊。。
目的是 创建一个具有26个元素的数组,并在其中输入26个字母,并显示该数组的内容。
我写的代码如下:
#include<stdio.h>
#define SIZE 26
int main(void)
{
char word[SIZE];
int num;
printf("Please input %d words :\n",SIZE);
for(num=0;num<=SIZE;num++)
scanf("%c",&word[num]);
for(num=0;num<=SIZE;num++)
printf("%c",word[num]);
return 0;

}
编译成功,执行./aout 输入26个字母后,出现如下内容:wangheng@wangheng-ThinkPad:~/TEST_c/text_6$ gcc text_5_1.c
wangheng@wangheng-ThinkPad:~/TEST_c/text_6$ ./a.out
Please input 26 words :
qwertyuiopasdfghjklzxcvbnmm
*** stack smashing detected ***: ./a.out terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x45)[0xb7659c75]
/lib/i386-linux-gnu/libc.so.6(+0xe8c27)[0xb7659c27]
./a.out[0x8048552]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb758a113]
./a.out[0x8048421]
======= Memory map: ========
08048000-08049000 r-xp 00000000 08:09 1459444 /home/wangheng/TEST_c/text_6/a.out
08049000-0804a000 r--p 00000000 08:09 1459444 /home/wangheng/TEST_c/text_6/a.out
0804a000-0804b000 rw-p 00001000 08:09 1459444 /home/wangheng/TEST_c/text_6/a.out
08286000-082a7000 rw-p 00000000 00:00 0 [heap]
b7541000-b755d000 r-xp 00000000 08:09 263099 /lib/i386-linux-gnu/libgcc_s.so.1
b755d000-b755e000 r--p 0001b000 08:09 263099 /lib/i386-linux-gnu/libgcc_s.so.1
b755e000-b755f000 rw-p 0001c000 08:09 263099 /lib/i386-linux-gnu/libgcc_s.so.1
b7570000-b7571000 rw-p 00000000 00:00 0
b7571000-b76e9000 r-xp 00000000 08:09 266669 /lib/i386-linux-gnu/libc-2.13.so
b76e9000-b76eb000 r--p 00178000 08:09 266669 /lib/i386-linux-gnu/libc-2.13.so
b76eb000-b76ec000 rw-p 0017a000 08:09 266669 /lib/i386-linux-gnu/libc-2.13.so
b76ec000-b76ef000 rw-p 00000000 00:00 0
b76fe000-b7702000 rw-p 00000000 00:00 0
b7702000-b7703000 r-xp 00000000 00:00 0 [vdso]
b7703000-b7721000 r-xp 00000000 08:09 263205 /lib/i386-linux-gnu/ld-2.13.so
b7721000-b7722000 r--p 0001d000 08:09 263205 /lib/i386-linux-gnu/ld-2.13.so
b7722000-b7723000 rw-p 0001e000 08:09 263205 /lib/i386-linux-gnu/ld-2.13.so
bf88e000-bf8af000 rw-p 00000000 00:00 0 [stack]
qwertyuiopasdfghjklzxcvbnmm已放弃
wangheng@wangheng-ThinkPad:~/TEST_c/text_6$



到底啥情况啊???


[解决办法]
数组越界了,for(num=0;num<=SIZE;num++)改为for(num=0;num<SIZE;num++)

读书人网 >C语言

热点推荐