[c] erreur malloc (incompatible types in assignment)

Signaler
Messages postés
11
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
27 mars 2006
-
Messages postés
11
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
27 mars 2006
-
voici mon programme :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct recette { char * nom;
struct ingredient * ing;
char * tps;
char * facon;
struct recette * rec_suiv;
}recette;

typedef struct ingredient {char * nom_ing;
char * quantite;
struct ingredient * ing_suiv;
}ingredient;

typedef struct recette * liste_recettes;


void inserer_recette_fin_liste(char a[1000],liste_recettes l) {
char t0[1000],c;
recette r;
if (l=NULL) {
l=&r;
strcpy(t0,a);
printf("%s \n",t0);
r=(liste_recettes )malloc(sizeof(recette));
r.nom=strtok(t0,":");
printf("%s\n",r.nom);
r.tps=strtok(NULL,":");
printf("%s \n",r.tps);
r.facon=strtok(strrchr(t0,':'),"\n");
printf("%s \n",r.facon);
r.rec_suiv=NULL;
system("PAUSE");}
else inserer_fin_recette(a,l->rec_suiv);
}

void structure (liste_recettes l) {
FILE *r;
char a[1000],c;
int i=0;
r= fopen ("recettes.dat", "r");
if (!r) {printf ("*** Impossible d'ouvrir le fichier ***\n");
system("PAUSE");
//menu();
}
else {while(!feof(r)) {

do { c=fgetc(r);
a[i]=c;
i++;} while (c!='\n');

inserer_recette_fin_liste(a,l); }
}}

int main()
{
liste_recettes l;
l=NULL;
structure(l);

system("PAUSE");
}

voici mon problème : quand j essaye de lancer mon programme , j ai lerreur suivante :incompatible types in assignment , du au r=(liste_recettes )malloc(sizeof(recette));
j ai essayé plein de modifications sur cette ligne , mais en vain .pouvez vous m aider svp.

2 réponses

Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
recette r;
n'a pas besoin d'etre alloué

on fait un malloc sur un pointeur

recette *r;
r=malloc(...)
Messages postés
11
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
27 mars 2006

merci