no save
Assistance
Achat
News

Forum | programmation
Chargement ds un tableau de structure
AndY, le dim. 12 déc. 2004 à 12:30:37
Voila le "problème" :
Je veux charger les données à partir d'un fichier séquentiel dans un tableau de structures que j'ai alloué dynamiquement (malloc).

Voici ma fonctiond e chargement :

void chargement(struct s_dvd **ppt) //recoit un ptr de ptr afin de pouvoir travailler sur la structure dans le main
{
struct s_dvd dvd,*ptr; //s_dvd = ma structure définie en global
FILE *file;
file=fopen("dvd.txt","r");
if(file==NULL)
{
erreur(1); //affichage d'une erreur
}
else
{
*ppt=(struct s_dvd *)malloc(((ftell(file))/sizeof(struct s_dvd))*sizeof(struct s_dvd)); //allocation dynamique du tableau de structures
if (*ppt==NULL)
{
erreur(2);
}
else
{
ptr=*ppt; // ptr va pointer sur le debut de structure et va etre utilisé pr le chargement - *ppt ne bouge pas.
fseek(file,0,0);
while((fread(&dvd,sizeof(struct s_dvd),1,file))==1)
{
ptr->dvd_num=dvd.dvd_num;
ptr->dvd_titre=dvd.dvd_titre;
ptr->dvd_annee=dvd.dvd_annee;
ptr->dvd_realisateur=dvd.dvd_realisateur;
ptr->dvd_acteur[1].acteur_nom=dvd.dvd_acteur[1].acteur_nom;
ptr->dvd_acteur[1].acteur_prenom=dvd.dvd_acteur[1].acteur_prenom;
ptr->dvd_acteur[2].acteur_nom=dvd.dvd_acteur[2].acteur_nom;
ptr->dvd_acteur[2].acteur_prenom=dvd.dvd_acteur[2].acteur_prenom;
ptr->dvd_acteur[3].acteur_nom=dvd.dvd_acteur[3].acteur_nom;
ptr->dvd_acteur[3].acteur_prenom=dvd.dvd_acteur[3].acteur_prenom;
ptr->dvd_code=dvd.dvd_code;
ptr->dvd_duree=dvd.dvd_duree;
ptr++;

}
}
}
}



L'erreur : concerne toutes les données de type char[] : error C2106: '=' : left operand must be l-value

Si je commente les lignes concernées le chargement se fait correctement pr les int.

Que dois je modifier ?

Merci


Ravachol
déc. 04
Suivant
REPONSES
Ravachol
déc. 04
AndY
déc. 04
Ravachol
déc. 04
AndY
déc. 04
Andy
déc. 04
Ravachol
déc. 04
AndY
déc. 04
Version Web
Réalisé par RedShift
no save