C中的全局数组声明?

时间:2011-11-13 21:00:20

标签: c data-structures

我需要全局声明一个数组,因为我希望所有方法都能在main.c程序中访问它。但是,如果我在main.h中声明它,我将不得不在声明时给它一个大小 - 问题是,我不知道大小,直到调用InitializeMemory(...)方法,它接受用户输入是数组的大小。

3 个答案:

答案 0 :(得分:3)

不要使它成为全局数组,使其成为全局指针(对于堆分配的数组),并使其适当初始化。

答案 1 :(得分:3)

全局创建int *ptr;(假设它是整数); 然后在你的功能;

 ptr = (int *) malloc(100*sizeof(int));

答案 2 :(得分:2)

如果你需要使用仅在运行时已知的大小来分配全局数组,那么你只需要一个指针,然后一旦知道了大小就会在代码中使用malloc。

 int *array;
 ...
 array = malloc(size_from_initialize_memory_function);
 // check that array != NULL.