fid_table
是指向数组指针fid_list
的指针。将值指针传递给c函数中的指针值
我想在一个单独的函数中初始化fid_table
到NULL
。我的理解是,fid_table是通过值复制的,但它是一个指针,所以不应该成为问题。
fid_list **fid_table;
fid_table_init(fid_table);
assert(fid_table[0] == NULL);
功能fid_table_init
定义如下:
void fid_table_init(fid_list **fid_table){
fid_table = (fid_list **) malloc(HTABLE_SIZE * sizeof(fid_list *));
for(int i = 0; i < HTABLE_SIZE; i++){
fid_table[i] = NULL;
}
}
能有人为什么这个断言失败详细点吗?
是,C或C++?在C中,你不应该使用C++来投射'voiud *'。请选择一种语言。 – Olaf
@Olaf:这是C – Keeto
好的,我不会问为什么你添加了C++标签。所以:标准警告:不要施放'void *'。 – Olaf