【发布时间】:2014-03-08 07:51:17
【问题描述】:
我正在尝试初始化一个空的二维指针数组,这些指针指向我创建的称为“节点”的数据结构。出于某种原因,我在尝试修改列表时遇到了这个范围问题,这是程序的关键部分。一个名为“repository_init”的函数应该真正初始化数组。但是,我在其他函数中使用数组,这就是我收到错误的原因。它不承认该数组存在。我是 C 新手,但在做了一些研究后,我在“extern”上发现了一些东西,该网站告诉我,我可以使用 extern 来声明一个空变量。所以,我把我的列表声明为一个全局变量,把它放在 main 之前并这样写:
extern node *main_list[][];
#define MAX_LEVEL 10000
这里是 repository_init() 函数:
void repository_init(int p){
int new;
new = (max_range/2) + 5;
max_height = 1;
while(new > 1){
new = (new * probability)/100;
max_height++;
}
main_list[max_height][MAX_LEVEL];
/*fill the array with empty values*/
}
错误输出到屏幕是“错误:数组类型有不完整的元素类型
外部节点 *main_list[][];"
我需要这个列表是全球性的。我看不出仅在单独的函数中初始化数组有什么问题。我已经用其他语言做了很多次了。
【问题讨论】:
-
如果以后要设置大小,需要将其存储为节点***而不是数组。
标签: c