bonjour,
J'ai un petit soucis pour passer un tableau de pointeur dans une procedure, voici un exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 //Main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include "fonction.h" main () { int* a; printf("adresse pointeur : %x\n",&a); printf("adresse pointee: %x\n",a); essai(a); printf("adresse pointeur : %x\n",&a); printf("adresse pointee: %x\n",a); printf("resultat : %d\n",a[0]); }Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 //fonction.h void essai(int* a){ a = (int*) malloc(sizeof(int)*2); a[0] = 10; printf("adresse pointeur a dans procedure : %x\n",&a); printf("adresse pointee a dans procedure: %x\n",a); }
adresse pointeur : bffffc8c
adresse pointee: 1d14
adresse pointeur a dans procedure : bffffc70
adresse pointee a dans procedure: 300130
adresse pointeur : bffffc8c
adresse pointee: 1d14
resultat : -1995946613
Je n'arrive pas a comprendre pourquoi l'adresse de a dans la procedure a changé et pourquoi le résultat n'est pas 10...
Les pointeurs c'est vraiment pas mon truc...
Merci par avance
Partager