Probleme tableau en C
Résolu/Fermé
Coucou1504
Messages postés
60
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
12 février 2010
-
16 mai 2008 à 17:42
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 16 mai 2008 à 20:23
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 16 mai 2008 à 20:23
A voir également:
- Probleme tableau en C
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Identifier un tableau à partir d'une photo - Forum Graphisme
- 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
1 réponse
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
16 mai 2008 à 20:23
16 mai 2008 à 20:23
Bonjour,
Je crois que j'ai compris la question...
Le problème serait de récupérer le tableau en dehors de la fonction de saisie ?
On pourrait envisager deux possibilités, la deuxième est souvent celle adoptée. (pour sa propreté et son extensibilité)
1)
On alloue un tableau dans lequel on stoque également la taille du tableau et la fonction retourne l'adresse du tableau :
int * saisir(...)
2)
On passe en argument les adresses de variables afin que la fonction puisse les remplir.
En C les paramètres des fonctions sont des copies, si la fonction modifie son paramètre, elle ne modifie que sa copie personnelle. Ainsi on donne en paramètre l'adresse d'une variable. L'adresse elle même est une copie, mais la fonction peut écrire des données à cette adresse. (donc dans la variable dont l'adresse lui est donnée)
Juste deux petites remarques:
A chaque malloc doit correspondre un free
Saisir alloue un tableau de 3 (son paramètre) puis saisit une taille, puis écrit taille valeurs (jusqu'à 5) dans le tableau de taille 3
M.
Je crois que j'ai compris la question...
Le problème serait de récupérer le tableau en dehors de la fonction de saisie ?
On pourrait envisager deux possibilités, la deuxième est souvent celle adoptée. (pour sa propreté et son extensibilité)
1)
On alloue un tableau dans lequel on stoque également la taille du tableau et la fonction retourne l'adresse du tableau :
int * saisir(...)
2)
On passe en argument les adresses de variables afin que la fonction puisse les remplir.
void saisir( int a, int b, int **ppiCoef, unsigned int *puTaille ) { ... *puTaille = 2; *ppiCoef = (int *) malloc( (*puTaille) * sizeof(int) ); if ( *ppiCoef != NULL ) { ... } else {// Memory allocation failed *puTaille = 0; } ... } int *tab; unsigned int taille; saisir( 3, 3, &tab, &taille ); ... if ( tab != NULL ) { free( tab ); }
En C les paramètres des fonctions sont des copies, si la fonction modifie son paramètre, elle ne modifie que sa copie personnelle. Ainsi on donne en paramètre l'adresse d'une variable. L'adresse elle même est une copie, mais la fonction peut écrire des données à cette adresse. (donc dans la variable dont l'adresse lui est donnée)
Juste deux petites remarques:
A chaque malloc doit correspondre un free
Saisir alloue un tableau de 3 (son paramètre) puis saisit une taille, puis écrit taille valeurs (jusqu'à 5) dans le tableau de taille 3
M.