在c程序中,我们可以初始化一个数组int array[10].所以它可以存储10个整数值.但是当我使用循环给出输入时,它输入超过10并且不显示任何错误.实际上发生了什么?
#include<stdio.H>
main()
{
int array[10],i;
for(i=0;i<=11;i++)
scanf("%d",&array[i]);
for(i=0;i<10;i++)
printf("%d",array[i]);
}
Run Code Online (Sandbox Code Playgroud)
因为C不做任何数组边界检查.作为程序员,您有责任确保不进行索引.
根据所使用的编译器和运行代码的系统,您可能会从内存中读取随机数据,或者在读取/写入越界时最终获取SIGSEGV.
| 归档时间: |
|
| 查看次数: |
1201 次 |
| 最近记录: |