【发布时间】:2015-06-02 13:55:24
【问题描述】:
我有以下函数,一个 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和函数initializeHeap()如下:
typedef struct node{
int data;
}Node;
typedef struct heap{
int size;
Node *dataArray;
}Heap;
Heap initializeHeap(){
Heap heap;
heap.size = 0;
return heap;
}
【问题讨论】:
-
initializeHeap的声明是什么?更具体地说,它声明返回什么? -
请问
h是如何定义的? -
一个不相关的提示:如果你有一个包含指针的结构,那么将指针初始化为
NULL通常是个好主意。