错误:间接需要指针操作数

时间:2015-03-29 15:41:58

标签: c pointers

我有以下函数,一个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;
}

1 个答案:

答案 0 :(得分:1)

变化:

Heap *p = *h;

Heap *p = &h;

h是一个Heap结构对象,使用&运算符来获取指向结构对象的指针。