字符串溢出!
#include "stdio.h"
main()
{
char a[5],c;
int i=0;
while((c=getchar())!='\n')
a[i++]=c;
printf("%s",a);
}
当输入字符超过5位!
会产生什么后果?
计算机是如何处理该问题的?
#include "stdio.h"
main()
{
char a[5],c;
int i=0;
while((c=getchar())!='\n')
a[i++]=c;
printf("%s",a);
}
当输入字符超过5位!
会产生什么后果?
计算机是如何处理该问题的?
2007-03-14 13:16

2007-03-14 13:20
2007-03-14 13:24
2007-03-14 13:24
2007-03-14 13:27
2007-03-14 13:29
第一个会有异常,
第二个只输出前5个字符.
不是吧
我运行出来: 第一个:显示前5个,在换行显示乱码
第二个就显示乱码!
其实我想知道原理
而不是结果!

2007-03-14 17:04
2007-03-14 17:07
2007-03-14 17:32
第一个 应该因为 a 没有为后面的分 内存.所以后面的只是内存中 原有的数据.我想
实际上 这个很危险,和指针一样,后面的是随机内存数据.
第二 也是既然没分后面的内存,就全乱了.
2007-03-14 18:01