我是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;
}
代码编译,但会触发访问冲突。 怎么了?
答案 0 :(得分:2)
你应该将&amp; n传递给scanf。
scanf("%d", &n);
正如乔纳森所指出的,这很容易被编译器警告所捕获。对于gcc,您可以使用-Wall
向您显示:
warning: format specifies type 'int *' but the argument has type
'int' [-Wformat]
scanf("%d", n); //asks for array value
~~ ^