Error: incompatible type for argument 1 of `inscription'

Bonjour.

J’ai un problème j’ai cette erreur à la compilation. Voici mon code:


#include<stdio.h>
#include<string.h>
#include <sys/types.h> 
#include <sys/ipc.h> 
#include <sys/msg.h> 
#include <time.h>
#include "structures.h"

//définition des fonctions	
int inscription(msg_standard msg_inscription);

//programme principal	
int main(int argc, char *argv[]){ 
	printf("Debut de servforum\n");

	//déclaration de variables        
	msg_generique msg;
	int res, i; 
	int frequete, freponse; 
	time_t date;
	//char message[LG_MAX];
	//début du traitement

	//boucle qui permet de faire tourner le daemon a l'infini jusqu'a ce qu'il soit tué
	while (1){	

		//création du canal requête utilisateur
        	frequete = msgget(CLEF_REQUETES, 0660 | IPC_CREAT); 
        	if (frequete == -1) { perror("msgget"); exit(0); } 

		//prends la requete
        	res = msgrcv(frequete, & msg, LG_MAX, 0, 0); 
        	if (res == -1) { perror("msgrcv"); exit(0); } 

		//log de fonctionnement
		date = time(NULL);
		printf("\n*********Nouveau message********\n");
		printf("Date: %s Login: %s Message reçu: %s\n", ctime(&date), msg.login, msg.parametre);
		
		//selon le type de fonction reçu, on lance la procédure correspondante
		switch (msg.fonction){
			case INSCRIPTION:
			
                        i=inscription(msg); //LA LIGNE DU PROBLEME
			break;
			 
		
		
		}

	}
}

//fonctions
int inscription(msg_standard msg_inscription){
 [...]

}

Je ne vois pas d’où vient le problème, je crois avoir fait les déclarations correctement.

tu passes la variable “msg” qui est de type “msg_generique” à ta fonction inscritpion qui elle attend comme type du “msg_standard”, il y a donc probleme de compatibilité [:austindangerpowers]

[cpp]

//définition des fonctions

int inscription(struct msg_standard msg_inscription);

[…]

//programme principal

int main(int argc, char *argv[]){

printf(“Debut de servforum\n”);

//déclaration de variables

struct msg_generique msg;

[/cpp]

A essayer mais perso, je passerais un pointeur sur la struct.

EDIT :

lol ! j’avais pas vu cette gaffe, toutédit :slight_smile:

oki merci bien!!