This question already has answers here:
Closed 2 years ago.
Value of memory changed without permission
(3个答案)
我在上免费的CS50在线课程。在其中一个视频教程中,老师提到了用100个整数填充数组的能力,这是一个很好的实践。我现在正试着做那件事,我很难搞清楚。
注意:我只看到了包含scanf函数和指针的答案。这是解决问题的唯一方法,还是可以不用扫描和指针就解决问题?
这几乎是我能得到的最接近。。。
#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <stdlib.h>

int main(void)
{

int fill_array[100];

for(int i = 0; i <= 100; i++)
{
    fill_array[99] = i;
    printf("%i", fill_array[i]);
}
}

打印出大量随机数,然后出现以下错误:
fillingarray.c:14:18: runtime error: index 100 out of bounds for type 'int [100]'
665999424

最佳答案

应该是:

for(int i = 0; i < 100; i++)

for循环中还有一个错误,要填充数组,应:
fill_array[i] = i;

代码应该看起来像
int fill_array[100];

for(int i = 0; i < 100; i++)
{
fill_array[i] = i;
printf("%i", fill_array[i]);
}

10-06 04:49