Problème initialisation tableau structure C
Résolu
Séb
-
Séb -
Séb -
Bonjour a tous
voila, je débute en C, et j'ai un soucis pour initialiser un tableau de structure qui contient une chaine de caractères.
voila ma structure
struct Reg_Produit{
int NumProduit;
char Description[21];
float Prix;
};
je creer un tableau de 100 éléments de type struct Reg_Produit
struct Reg_Produit TProduit;
et j'essaye de l'initialiser avec une boucle for
for (i=0;i<=100;i++){
TProduit[i].NumProduit=i;
TProduit[i].Description="";
TProduit[i].Prix=0;
}
la compilation échoue en me disant:
incompatible types assignment of 'const char[1]' to 'char[21]'
quelqu'un de patient veut bien me dire comment initialiser ce tableau avec une boucle for?
merci beaucoup
voila, je débute en C, et j'ai un soucis pour initialiser un tableau de structure qui contient une chaine de caractères.
voila ma structure
struct Reg_Produit{
int NumProduit;
char Description[21];
float Prix;
};
je creer un tableau de 100 éléments de type struct Reg_Produit
struct Reg_Produit TProduit;
et j'essaye de l'initialiser avec une boucle for
for (i=0;i<=100;i++){
TProduit[i].NumProduit=i;
TProduit[i].Description="";
TProduit[i].Prix=0;
}
la compilation échoue en me disant:
incompatible types assignment of 'const char[1]' to 'char[21]'
quelqu'un de patient veut bien me dire comment initialiser ce tableau avec une boucle for?
merci beaucoup
A voir également:
- Problème initialisation tableau structure C
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
2 réponses
Bonjour,
Attention à la condition d'arrêt de votre boucle for.
Si vous créez un tableau de 100 éléments, le dernier sera le 99ème (numérotation commençant à 0 oblige !).
Il faut donc mettre : for(i=0;i<100;i++) /*inférieur strictement*/
De plus, vous affectez mal les valeurs aux chaînes de caractères :
strcpy(TProduit[i].Descrption, ""); ou tout simplement TProduit[i].Description[0]=0;
Cdlt,
Attention à la condition d'arrêt de votre boucle for.
Si vous créez un tableau de 100 éléments, le dernier sera le 99ème (numérotation commençant à 0 oblige !).
Il faut donc mettre : for(i=0;i<100;i++) /*inférieur strictement*/
De plus, vous affectez mal les valeurs aux chaînes de caractères :
strcpy(TProduit[i].Descrption, ""); ou tout simplement TProduit[i].Description[0]=0;
Cdlt,