назначение из-за несовместимой проблемы с предупреждением о типе указателя - PullRequest
0 голосов
/ 30 января 2019

Я продолжаю получать предупреждения «назначение из несовместимого типа указателя», и я не могу найти решение!

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; 

АДРЕССИОН

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 голосов
/ 30 января 2019

Попробуйте это решение.Я не знаю, для чего вы будете использовать этот код.Я добавил инструкции, которые вы указываете отдельно, в функцию create_machine.КОД ЗДЕСЬ - ТОЛЬКО РЕШЕНИЕ ДЛЯ РЕШЕНИЯ ПРЕДУПРЕЖДЕНИЯ!

Если вы используете тип ADDRESSIP в структуре struct machine, вы уже должны объявить typedef {} ADDRESSIP;

typedef struct adressIP { // la structure AdressIP
    int n1; int n2; int n3; int n4; }
ADRESSIP;

typedef struct machine{ // la structure Machine ,, represente un pc
    struct machine * suivant;
    const char nom;
    ADRESSIP *ip;
} MACHINE;

typedef struct reseau{ // la structure reseau comme une liste
    MACHINE * suivant;
    long long size;
    short vide; }
RESEAU;


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

    return m;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...