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