Programmation en "C" erreur de compilati

Fermé
gyle - 29 déc. 2005 à 10:40
 sala - 4 janv. 2006 à 15:46
bonjour ,
je suis entreint de compiler un package ecrit en "c" mais je recoit un message de erreur que je ne parvient à résourdre. voici le message d'erreur:
gcc -I. -Icdb -g -O2 -Wall -c maildirquota.c
maildirquota.c:516: erreur: membre gauche de l'affectation invalide
maildirquota.c:518: erreur: membre gauche de l'affectation invalide
maildirquota.c:525: erreur: membre gauche de l'affectation invalide
maildirquota.c:538: erreur: membre gauche de l'affectation invalide
voici les ligne 516, 518, 525, 538 pour lesquelle le compilateur signale l'erreur:

(char *)iov[0].iov_base=(char *)quota_type; // line 516
(char *)iov[1].iov_base="\n"; // line 518
(char *)iov[niov].iov_base=u.buf; // line 525
((char *)p->iov_base + n); // line 538

voici le bloc du programme comportant ces lines:


{
(char *)iov[0].iov_base=(char *)quota_type; //line 516
iov[0].iov_len=strlen(quota_type);
(char *)iov[1].iov_base="\n"; // line 518
iov[1].iov_len=1;
niov=2;
}


sprintf(u.buf, "%ld %d\n", maildirsize_size, maildirsize_cnt);
(char *)iov[niov].iov_base=u.buf; //line 525
iov[niov].iov_len=strlen(u.buf);

p=iov;
++niov;
n=0;
while (niov)
{
if (n)
{
if (n < p->iov_len)
{
(char *)p->iov_base=
((char *)p->iov_base + n); //line 538
p->iov_len -= n;
}
A voir également:

2 réponses

jalico Messages postés 6 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 29 décembre 2005 5
29 déc. 2005 à 14:20
Salut,
Le pb semble venir d'une différence entre ton affectation et le type déclaré de ta structure (iov[x].iov_base=(char *).
Vérifies que la structure s'attend bien à recevoir des char *.

A+
0
je ne comprend pas toujour, voici la declaration des variables:
char *newname2=0;
char *newmaildirsizename=0;
struct iovec iov[3];
int niov;
struct iovec *p;
int n;
0