大家好,我希望大家都好,
我在这里搜索一些帮助因为,我有一点问题,当我尝试编译我的程序时,我在函数main中有一个错误在这行d = DEPILER(* p);
错误是
main.c:12:19: error: incompatible type for argument 1 of ‘DEPILER’
p = DEPILER(*p);
^
In file included from Indexation.h:4:0,
from base.h:1,
from main.c:3:
PileID.h:18:9: note: expected ‘struct CELLULE **’ but argument is of type ‘struct CELLULE’
Pile_ID DEPILER (Pile_ID *p);
^
main.c:14:21: error: incompatible type for argument 1 of ‘DEPILER’
}while( DEPILER(*p) != NULL);
^
In file included from Indexation.h:4:0,
from base.h:1,
from main.c:3:
PileID.h:18:9: note: expected ‘struct CELLULE **’ but argument is of type ‘struct CELLULE’
Pile_ID DEPILER (Pile_ID *p);
^
Makefile:12 : la recette pour la cible « main.o » a échouée
make: *** [main.o] Erreur 1
我经常搜索,找出为什么我的计划不起作用,但我不知道因为
的论点d = DEPILER(* p);
是
* P
类型
Pile_ID
我的DEPILER原型是
识别DEPILER(Pile_ID * p);
所以为什么他想要一个类型
的论证struct CELLULE **
//我的主要
#include <stdio.h>
#include <stdlib.h>
#include "base.h"
int main(){
Pile_ID p;
identifiant d;
p = Indexation("/home/mallent/FICHIER_PROJET/Textes");
do{
d = DEPILER(*p);
//Copie(*d);
}while( DEPILER(*p) != NULL);
}
// function depiler in file PileID.c
identifiant DEPILER (Pile_ID *p){
assert(PILE_EST_VIDE);
identifiant x;
Pile_ID paux;
paux=(*p)->suiv;
x.d=(*p)->ID.d;
x.titre=(*p)->ID.titre;
free (*p);
(*p)=paux;
return x;
}
// function depiler in file PileID.h
#include "descripteur.h"
typedef struct etIdentifiant{
descrip d;
const char *titre;
}identifiant;
typedef struct CELLULE{
identifiant ID;
struct CELLULE *suiv;
}Cel;
typedef struct CELLULE * Pile_ID;
PS:对不起我的英文我希望你能理解感谢所有会帮助我的人(^ _ ^)
答案 0 :(得分:1)
尝试使用d = DEPILER(&p);
代替d = DEPILER(*p);
。