2015-03-29 3 views
1

У меня есть следующие функции: функция initializeHeap, которая не принимает аргументов и выводит структуру Heap, которую я определил. И функция insertNode, которая принимает указатель на кучу struct и число, которое должно быть добавлено в кучу. Я называю их основной функции, как, например:Ошибка: косвенный поиск требует указателя указателя

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; 
} 
+0

Что такое объявление 'initializeHeap'? В частности, что объявлено для возврата? –

+1

Так как же определяется 'h', пожалуйста? – alk

+1

Несвязанный совет: если у вас есть структура с указателями в ней, то обычно рекомендуется инициализировать указатель на 'NULL'. –

ответ

1

Изменение:

Heap *p = *h; 

к

Heap *p = &h; 

h является Heap структура объекта, использовать & оператор для получения указателя на структуру ob ект.

Смежные вопросы