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