我不断收到“来自不兼容指针类型的分配”警告,但找不到解决方法!
MACHINE* create_machine(RESEAU *r){ // Creation d'une machine and erreur
MACHINE *m = malloc(sizeof(MACHINE));
if(m == NULL){
printf("\nErreur");
return NULL;
}
ADRESSIP *ip = malloc(sizeof(ADRESSIP));
if(ip == NULL){
printf("\nErreur");
return NULL;
}
当我这样做时,在这里得到警告!
m->suivant = NULL;
m->ip=ip; //erreur
来自评论:
机器是
typedef struct machine{ // la structure Machine ,, represente un pc
struct machine *suivant;
const char* nom;
struct ADRESSIP *ip;
}MACHINE;
ADRESSIP是
typedef struct adressIP{ // la structure AdressIP
int n1;
int n2;
int n3;
int n4;
}ADRESSIP;
RESEAU是
typedef struct reseau{ // la structure reseau comme une liste
MACHINE *suivant;
long long size;
short vide;
}RESEAU;
答案 0 :(得分:0)
尝试此解决方案。我不知道您将如何使用此代码。我已将您单独指示的说明添加到函数applicationUser
中。这里的代码仅是解决警告的一种解决方案!
如果在结构create_machine
中使用类型ADDRESSIP
,则必须已经声明struct machine
typedef {} ADDRESSIP;