Probleme tableau de string
Résolu/Fermé
A voir également:
- Probleme tableau de string
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Cannot access offset of type string on string - Forum PHP
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif suivant. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des 4 premières colonnes. cinq valeurs manquent dans le tableau suivant. retrouvez-les dans votre tableau puis reportez-les, arrondies à l’entier le plus proche, dans la zone de réponse. - Forum Excel
2 réponses
Bonjour
scanf prend comme paramètre l'adresse de la variable dans laquelle tu veux écrire.
Les adresses de tes tableaux de caractères sont motif[0], motif[1], etc... Tu les as initialisées avec les malloc
Donc le paramètre du scanf aurait dû être motif[0], motif[1], etc... et pas &motif[0], &motif[1]..
&motif[0] c'est l'adresse du pointeur qui te dit où se trouve ton 1er tableau de 100 caractères
&motif[1] c'est l'adresse du pointeur qui te dit où se trouve ton 2nd tableau de 100 caractères
Quand tu fais scanf("%s",&motif[0]), tu viens écrire ta chaîne sur les pointeurs au lieu de l'écrire dans les tableaux de caractères que tu avais réservés. Donc tu écrases les pointeurs : si tu essayes de faire un free, ça va planter dur...
J'aimerais bien savoir quels printf tu fais exactement pour obtenir les résultats que tu affiches, mais ils montrent bien que ce que tu affiches, c'est la zone des pointeurs (deux variables consécutives sont séparées de 4 octets) et pas celle allouée pour les caractères
scanf prend comme paramètre l'adresse de la variable dans laquelle tu veux écrire.
Les adresses de tes tableaux de caractères sont motif[0], motif[1], etc... Tu les as initialisées avec les malloc
Donc le paramètre du scanf aurait dû être motif[0], motif[1], etc... et pas &motif[0], &motif[1]..
&motif[0] c'est l'adresse du pointeur qui te dit où se trouve ton 1er tableau de 100 caractères
&motif[1] c'est l'adresse du pointeur qui te dit où se trouve ton 2nd tableau de 100 caractères
Quand tu fais scanf("%s",&motif[0]), tu viens écrire ta chaîne sur les pointeurs au lieu de l'écrire dans les tableaux de caractères que tu avais réservés. Donc tu écrases les pointeurs : si tu essayes de faire un free, ça va planter dur...
J'aimerais bien savoir quels printf tu fais exactement pour obtenir les résultats que tu affiches, mais ils montrent bien que ce que tu affiches, c'est la zone des pointeurs (deux variables consécutives sont séparées de 4 octets) et pas celle allouée pour les caractères