tableau de pointeur en parametre de procedure
bonjour,
J'ai un petit soucis pour passer un tableau de pointeur dans une procedure, voici un exemple :
Code:
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]);
} |
Code:
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);
} |
Résultat :
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