C:定义用户可以声明其大小的全局数组变量

时间:2016-01-17 00:58:10

标签: c arrays input

我想用C语言设置int数组的全局引用,但我想在main函数中初始化它(实际上用户将声明它的大小)。谁知道这是怎么做到的?

提前致谢!

1 个答案:

答案 0 :(得分:5)

将指向int的指针声明为全局变量,并使用malloc在main中初始化它。

/* outside any function, so it's a global variable: */
int *array;
size_t array_size;

/* inside main(): */
array_size = user_defined_size;
array = malloc( sizeof(int)*array_size);
if ( array == NULL) {
    /* exit - memory allocation failed. */
}
/* do stuff with array */
free(array);

如果需要从另一个模块(源文件)访问全局变量,请使用

再次声明它
extern int *array;
extern size_t array_size;

或者,最好在包含在使用该数组的任何源文件中的头文件中声明它们extern,包括定义它们的源(以确保类型一致性)。