Erreur compil

moloko2000 Messages postés 16 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2003 - 14 août 2003 à 15:55
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 - 17 août 2003 à 18:46
j'utilise un char[8] : crit_r->birthDate et je lui passe 8 caractères(rien de plus normal jusque là) comme suit:

crit_r->birthDate ="1245221"

Le problème c'est que j'obtient l'erreur suivante:

error C2106: '=' : left operand must be l-value

12 réponses

HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
14 août 2003 à 15:59
ta essayé strcpy()?
a+
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 4
14 août 2003 à 15:59
Salut,
Pour copier une chaine dans une autre, c'est strcpy(..), surtout pas de '='.
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
14 août 2003 à 16:04
A 20 seconde près aardman à eu la même idée, mais moi 20 secondes avant lui Na! Na! (je plaisante bien sur...)
a+
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 4
14 août 2003 à 16:07
oui, mais mon post comporte 5 fois plus de mot et est plus précis car je dis qu'on ne peut pas utiliser '=' pour les chaines de caracteres.
Bien essayé :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
14 août 2003 à 16:10
Ouais, ouais! Je te l'accorde, on va dire que les 20 secondes t'on servi à taper ton post. Le mien était LIGTH!
a+
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
14 août 2003 à 16:13
Juste pour une petite précision, le "=" est possible pour les chaine de caractères en allocation statique : char toto[]="cool"

a+
0
francisdanes Messages postés 3 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 30 août 2003
14 août 2003 à 16:20
-------------------------------
Réponse au message :
-------------------------------

> j'utilise un char[8] : crit_r->birthDate et je lui passe 8 caractères(rien de plus normal jusque là) comme suit:
>
> crit_r->birthDate ="1245221"
>
> Le problème c'est que j'obtient l'erreur suivante:
>
> error C2106: '=' : left operand must be l-value
>
>
>
Il te suffit de déclarer ta variable comme un simple pointeur de char. ensuite tu peux lui affecter ta chaîne de char

exemple :

char * toto ;

toto = "123456" ; // sans limite de taille !

lorsque tu donnes dans ton programme une constante chaîne de caractères telle que "123456", la chaîne est rentrée en mémoire et "123456" est l'adresse mémoire où C l'a stockée.
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
14 août 2003 à 16:45
Faire ce que tu dis sans malloc() (ou au moins une allocation statique)!!?? Tu déclare un pointeur mais ta chaine ou tu la met si tu ne lui alloue pas de la mémoire?
a+
0
francisdanes Messages postés 3 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 30 août 2003
17 août 2003 à 18:20
où crois-tu que le système range les chaînes constantes ? en mémoire. le pointeur récupéré est l'adresse où le système a rangé la chaîne constante.
@+
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
17 août 2003 à 18:30
a+
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
17 août 2003 à 18:32
En d'autre termes, tu es en train de me dire que le malloc ne sert à rien? char *toto puis toto="chaine de caractère" c'est suffisant. Tu me parle aussi de constantes, tu peux préciser ta penser (par un exemple)
a+
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
17 août 2003 à 18:46
Pour moi jusqu'a présent, le seul moment ou le malloc() est inutile est pour une allocation statique du style char*toto="chaine". Sinon char*toto puis toto=malloc(sizeof(char)*7) et enfin strcpy(toto,"chaine"). Amoins que l'on m'explique se qui ne vas pas, pour moi c'est les seul manière de procéder.
lorsque tu me dis
char *toto;
toto="chaine";
Ca décoiffe.
a+
0
Rejoignez-nous