在运行时初始化数组元素

时间:2015-04-01 23:26:39

标签: c arrays runtime

我是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;
}

代码编译,但会触发访问冲突。 怎么了?

1 个答案:

答案 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
       ~~   ^