Pointeur et Tableaux
Fermé
omidaoui
Messages postés
32
Date d'inscription
dimanche 11 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2017
-
1 déc. 2017 à 17:17
omidaoui Messages postés 32 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 2 décembre 2017 - 2 déc. 2017 à 16:23
omidaoui Messages postés 32 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 2 décembre 2017 - 2 déc. 2017 à 16:23
A voir également:
- Pointeur et Tableaux
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Pointeur satellite eutelsat 5wa - Forum Satellite
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Comment faire apparaître le pointeur de la souris - Guide
2 réponses
Bonjour
Ta fonction create_tab2 remplit une table qui n'est pas celle que tu lui as passée en paramètre.
En effet, dans le programme principal, tu alloues une zone pour une table, et tu passes le pointeur à la fonction create_tab2.
Cette fonction reçoit une copie du pointeur. Je dis bien une copie du pointeur, pas le pointeur lui-même. Dans la fonction, tu alloues un nouveau tableau dont tu mets l'adresse dans cette copie du pointeur. Tu perds ainsi la trace du l'endroit où T pointait dans le programme principal. Ce qui se passe ensuite dans create_tab2 n'a plus aucun rapport avec la zone pointée par T.
Ta fonction create_tab2 remplit une table qui n'est pas celle que tu lui as passée en paramètre.
En effet, dans le programme principal, tu alloues une zone pour une table, et tu passes le pointeur à la fonction create_tab2.
Cette fonction reçoit une copie du pointeur. Je dis bien une copie du pointeur, pas le pointeur lui-même. Dans la fonction, tu alloues un nouveau tableau dont tu mets l'adresse dans cette copie du pointeur. Tu perds ainsi la trace du l'endroit où T pointait dans le programme principal. Ce qui se passe ensuite dans create_tab2 n'a plus aucun rapport avec la zone pointée par T.
Dalfab
Messages postés
703
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 mars 2023
100
2 déc. 2017 à 10:20
2 déc. 2017 à 10:20
Bonjour,
Attention, l'exemple avec
L'exemple avec
Attention, l'exemple avec
create_tab1()fait 2 allocations! Et aucune libération.
L'exemple avec
create_tab2(). Une fonction ne peut modifier une variable de l'appelant que si elle est passée par adresse. Ici la variable est un pointeur, son adresse est donc un pointeur de pointeur.
void create_tab2( int** adr_t , int n ) {
*adr_t = malloc( n * sizeof(int) );
int* t = *adr_t;
.....
omidaoui
Messages postés
32
Date d'inscription
dimanche 11 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2017
2 déc. 2017 à 16:23
2 déc. 2017 à 16:23
:) merci beaucoup
2 déc. 2017 à 16:22