这是我初始化数组的代码:
#include <stdio.h>
int main (void) {
int x, n;
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
int *array = {2, 4, 6, 9, 11, 13, 15, 17, 19, 21, 25, 29, 30, 34, 35, 38};
n = sizeof(array) / sizeof(int);
for (x=0; x<n; x++) {
printf("%i: %i - ", x, array[x]);
}
printf("\nArray's length: %i", n);
return 0;
}
我不明白为什么这个简单的代码shows this message:
运行时错误
提前致谢。
答案 0 :(得分:1)
将此更改为int *array =
:int array[] =
。 Ideone链接:https://ideone.com/ULH7i6。另见:How to initialize all members of an array to the same value?
答案 1 :(得分:1)
当您宣布以下行时,您有什么想法?
int *array = {2, 4, 6, 9, 11, 13, 15, 17, 19, 21, 25, 29, 30, 34, 35, 38};
当我看到类似这样的东西时,你会想到使用指针算法来处理数组,这会产生很多有趣的面试问题(一般来说很酷):P)。另一方面,您可能只是习惯于使用数组文字创建数组。
下面介绍了您可能尝试使用的不同类型的数组。我知道你选择了一个答案,但如果你想要完成别的事情,这可能对你有用。
答案 2 :(得分:-2)
您的数组声明不正确....只需将您的声明编辑为
int *array[] = {2, 4, 6, 9, 11, 13, 15, 17, 19, 21, 25, 29, 30, 34, 35, 38};
这里是更正码!
#include <stdio.h>
int main (void) {
int x, n;
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
int *array[] = {2, 4, 6, 9, 11, 13, 15, 17, 19, 21, 25, 29, 30, 34, 35, 38};
n =sizeof(array) / sizeof(int);
for (x=0; x<n; x++) {
printf("%i: %i - ",x,array[x]);
}
printf("\nArray's length: %i", n);
return 0;
}