来自不兼容的指针类型警告问题的赋值

时间:2019-01-30 12:54:42

标签: c pointers struct

我不断收到“来自不兼容指针类型的分配”警告,但找不到解决方法!

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;

1 个答案:

答案 0 :(得分:0)

尝试此解决方案。我不知道您将如何使用此代码。我已将您单独指示的说明添加到函数applicationUser中。这里的代码仅是解决警告的一种解决方案!

如果在结构create_machine中使用类型ADDRESSIP,则必须已经声明struct machine

typedef {} ADDRESSIP;