由此產生的不兼容警告:Ç - 加載結構包含一個指針的指針
#include <stdlib.h>
#include <stdio.h>
typedef struct
{
int key;
int data;
struct htData_* next;
struct htData_* prev;
}htData_;
typedef struct
{
int num_entries;
struct htData_** entries;
}ht_;
ht_* new_ht(int num_entries);
int ht_add(ht_* ht_p, int key, int data);
int main()
{
int num_entries = 20;
//crate a hash table and corresponding reference
ht_* ht_p = new_ht(num_entries);
//add data to the hash table
int key = 1305;
ht_add(ht_p,key%num_entries,20);
return 0;
}
ht_* new_ht(int num_entries)
{
ht_ *ht_p;
ht_ ht;
ht.num_entries = num_entries;
ht_p = &ht;
//create an array of htData
htData_ *htDataArray;
htDataArray = (htData_*) malloc(num_entries * sizeof(htData_));
//point to the pointer that points to the first element in the array
ht.entries = &htDataArray; // WARNING HERE!!!!!!!!!!!!!!!!
return ht_p;
}
我試圖複製**ptr
到struct
包含**ptr
。
更新:我的簡化代碼不準確,所以我發佈了實際的代碼。
還提到,該線生產的警告 – iammilind
什麼'htData_數組[20] = htDataArray;'打算做什麼? –
我添加了一個更好,更容易理解的測試失敗案例,專門替換該行。感謝您的期待,併爲缺乏組織而表示歉意...... –