JeanLucZ
Messages postés5Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention 6 octobre 2003
-
5 oct. 2003 à 22:07
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
6 oct. 2003 à 11:29
JLZ
Je suis débutant en programmation. Quelqu'un peut-il me dire pourquoi la dernière ligne ne marche pas.
J'ai une erreur : error C2106: '=' : left operand must be l-value.
Merci d'avance.
JLZ
struct produit {
char nom[20];
float prix;
int qte;
};
void main()
{
struct produit tabProd[30];
int i=0, j;
char art[20];
cbestern
Messages postés25Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention17 novembre 2003 6 oct. 2003 à 07:15
Pour être plus précis, lorsque tu fais tabProd[i].nom = art; il essaye de copier les pointeurs et non les contenus.
if faut donc bien faire des strcpy pour que cela fonctione.
JeanLucZ
Messages postés5Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention 6 octobre 2003 6 oct. 2003 à 11:18
Merci bcp à tous les deux.
Je ne comprenais pas pourquoi ça marchait avec
tabProd[i].prix = 2.5; et pas avec tabProd[i].nom = art;
En fait, si j'ai bien compris, art est un pointeur sur le premier octet de art[20]. Donc dans ma manière de formuler, je passais une adresse et non une chaine de caractères.
Est-ce bien cela ou ai-je encore tout faux ?
Merci d'avance.
PS : j'avoue que j'ai du mal avec ces pointeurs, surtout quand ils sont assocés à des structures.
Où pourrais-je trouver plein d'exercices corrigés pour m'entrainer. Les bouquins comme ceux de Delannoy sont un peu légers la-dessus.