Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 错误:间接寻址需要指针操作数_C_Pointers - Fatal编程技术网

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

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

我有以下函数,一个initializeHeap函数,它不接受任何参数,并输出我定义的堆结构。以及一个insertNode函数,它接收指向堆结构的指针和要添加到堆中的数字。我在main函数中这样调用它们:

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;