我是C的新手,来自Java.
我制作了以下简单的程序,编译很好,但每当我运行它时,nano会抛出一个分段错误.它的目的是遍历数组并让它在一个单独的行上打印出每个元素.
int main()
{
int array[5] = {1, 2, 3, 4, 5};
int i = 0;
for (i = 0; i < sizeof(array); i++)
{
puts(array[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
首先,puts采用空终止字符串,而不是整数.其次,要确定数组中元素的数量,请使用sizeof(array)/sizeof(array[0]),因为sizeof(array)是数组的总字节数.第三,使用int main(void)标准C.试试这个:
int main(void)
{
int array[5] = {1, 2, 3, 4, 5};
int i = 0;
for (i = 0; i < sizeof(array) / sizeof(array[0]); i++)
{
printf("%d\n", array[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |