由此产生的不兼容警告:Ç - 加载结构包含一个指针的指针
#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;'打算做什么? –
我添加了一个更好,更容易理解的测试失败案例,专门替换该行。感谢您的期待,并为缺乏组织而表示歉意...... –