我有以下函数,一个initializeHeap函数,它不接受任何参数并输出我已定义的Heap结构。还有一个insertNode函数,它接受一个指向堆结构的指针和要添加到堆中的数字。我在主函数中称它们为:
h = initializeHeap();
Heap *p = *h;
insertNode(p,5);
insertNode(p,7);
insertNode(p,3);
insertNode(p,2);
尝试执行此操作时出现此错误:
error: indirection requires pointer operand
有什么想法吗?如果需要,我可以发布更多代码。
struct Heap和function initializeHeap()如下:
typedef struct node{
int data;
}Node;
typedef struct heap{
int size;
Node *dataArray;
}Heap;
Heap initializeHeap(){
Heap heap;
heap.size = 0;
return heap;
}
答案 0 :(得分:1)
变化:
Heap *p = *h;
到
Heap *p = &h;
h
是一个Heap
结构对象,使用&
运算符来获取指向结构对象的指针。