Pointeurs et adressage aléatoire
Bonjour,
Comme beaucoup de débutants je bute sur l'assimilation des pointeurs. Afin de mieux comprendre comment ces drôles d'objets fonctionnaient, j'ai voulu tester le transfert de tableaux.
Pour cela, j'ai créé une fonction generer qui crée un tableau de valeurs à partir de données rentrées par l'utilisateur et l'envoie au main par l'intermédiaire d'un pointeur.
Le reste de la fonction main consiste à lire le tableau obtenu pour s'assurer qu'il est bien identique au tableau entré plus haut.
Voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#include <stdio.h>
#include <stdlib.h>
int * generer(int n);
int main()
{
int i,n;
int *T = NULL;
printf("Taille du tableau ? ");
scanf("%d", &n);
T = generer(n);
for(i=0;i<n;i++)
{
printf("%d\n",T[i]);
}
return 0;
}
int * generer(int n)
{
int i;
int T[n];
int *pt = NULL;
for(i=0;i<n;i++)
{
printf("Element du tableau ? ");
scanf("%d", &T[i]);
}
pt = &T[0];
return pt;
} |
Mon souci est qu'assez souvent un chiffre diffère entre le tableau de sortie et celui d'entrée ( le 2e ou le dernier élément du tableau sont régulièrement faux tandis que les autres sont exacts )
J'aimerais savoir d'où peut venir cette irrégularité.