我写了这个令人难以置信的愚蠢的代码
#include <stdio.h>
main(){
int new[10], i;
for(i=1; i<=10; ++i){
new[i] = 0;
}
for(i=1;i<=10; ++i)
{
printf("%d", new[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
我在Xubuntu上使用GCC编译了这个,然后编写了./a.out.光标只是闪烁,导致无输出.尝试使用gdb进行调试时也是如此.它运行然后与闪烁的光标一起停留.
有帮助吗?
C数组被索引为0 - 您的程序写入new
数组的边界之外,因此它会导致未定义的行为.在这种情况下,您可能正在覆盖i
变量,因此最终会出现无限循环.你需要改变你的循环:
for (i = 0; i < 10; i++)
{
new[i] = 0;
}
Run Code Online (Sandbox Code Playgroud)
和:
for (i = 0; i < 10; i++)
{
printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
650 次 |
最近记录: |