在 运行 时间初始化数组元素
Initialize array elements at run time
我是 C 的新手,我正在尝试根据用户输入在 运行 时初始化数组元素(所以如果用户输入 4,则数组 [0]=4)。
我有以下代码:
#include<stdio.h>
#define MAX 10
#define maxValue 100
int array[MAX];
int n;
int main(void){
scanf("%d", n); //asks for array value
if (n <= maxValue)
{
array[0] = n;
}
return 0;
}
代码可以编译,但会触发访问冲突。
怎么了?
您应该将 &n 传递给 scanf。
scanf("%d", &n);
正如 Jonathan 所指出的,这很容易被编译器警告捕获。对于 gcc,您可以使用 -Wall
,它将显示:
warning: format specifies type 'int *' but the argument has type
'int' [-Wformat]
scanf("%d", n); //asks for array value
~~ ^
我是 C 的新手,我正在尝试根据用户输入在 运行 时初始化数组元素(所以如果用户输入 4,则数组 [0]=4)。
我有以下代码:
#include<stdio.h>
#define MAX 10
#define maxValue 100
int array[MAX];
int n;
int main(void){
scanf("%d", n); //asks for array value
if (n <= maxValue)
{
array[0] = n;
}
return 0;
}
代码可以编译,但会触发访问冲突。 怎么了?
您应该将 &n 传递给 scanf。
scanf("%d", &n);
正如 Jonathan 所指出的,这很容易被编译器警告捕获。对于 gcc,您可以使用 -Wall
,它将显示:
warning: format specifies type 'int *' but the argument has type
'int' [-Wformat]
scanf("%d", n); //asks for array value
~~ ^