C 错误:间接寻址需要指针操作数
我有以下函数,一个initializeHeap函数,它不接受任何参数,并输出我定义的堆结构。以及一个insertNode函数,它接收指向堆结构的指针和要添加到堆中的数字。我在main函数中这样调用它们:C 错误:间接寻址需要指针操作数,c,pointers,C,Pointers,我有以下函数,一个initializeHeap函数,它不接受任何参数,并输出我定义的堆结构。以及一个insertNode函数,它接收指向堆结构的指针和要添加到堆中的数字。我在main函数中这样调用它们: h = initializeHeap(); Heap *p = *h; insertNode(p,5); insertNode(p,7); insertNode(p,3); insertNode(p,2); 尝试执行此操作时,我遇到以下错误: error: indirection requir
h = initializeHeap();
Heap *p = *h;
insertNode(p,5);
insertNode(p,7);
insertNode(p,3);
insertNode(p,2);
尝试执行此操作时,我遇到以下错误:
error: indirection requires pointer operand
有什么想法吗?如果需要,我可以发布更多代码
结构堆和函数initializeHeap()如下所示:
typedef struct node{
int data;
}Node;
typedef struct heap{
int size;
Node *dataArray;
}Heap;
Heap initializeHeap(){
Heap heap;
heap.size = 0;
return heap;
}
更改:
Heap *p = *h;
到
h
是一个堆
结构对象,请使用和运算符获取指向结构对象的指针。初始化EAP的声明是什么?更具体地说,它声明返回什么?那么h
是如何定义的呢?一个不相关的提示:如果你有一个包含指针的结构,那么初始化指向NULL
的指针通常是一个好主意。
Heap *p = &h;