Этот вопрос задан раньше, но из того, что я видел, все люди злоупотребляют 'a.b'
, чтобы получить значения указателя. Я использую 'a->b'
, но он все еще бросает эту ошибку. Вот мой код, это означает, что динамический стек:C - ошибка: запрос для члена '---' в чем-то, что не является структурой или объединением
Заголовок файла:
typedef struct etCel{
element *ele;
struct cel *suiv;
} cel;
typedef cel* pile;
pile init_pile();
int affiche_pile(pile *p);
.c файл:
pile init_pile(pile *p){
return NULL;
}
int affiche_pile(pile *p){
printf("Valeurs de la pile:\n");
while(p!=NULL){
affiche_element(p->ele);
printf("\n");
p=*(p->suiv);
}
return 1;
}
У вас 'typedef' pile как указатель на cel, тогда вы передаете указатель' pile' в функцию, это указатель на указатель на cel. –
[MVCE] (http://stackoverflow.com/help/mcve) please – Danh
'pile' typedef'ed как тип указателя на' etCel/cel', но 'pile *' означает указатель на другой указатель (двойное косвенное). Следовательно, вы получаете ошибку. –