mador a écrit :
voila comment jai proceder:
int n,m; printf("entrer la dimension du tableau:\n" ); scanf("%d",&n); int **tab; tab=malloc(n * sizeof * tab); for (int i=0;i<n;i++) { tab[i]=malloc(m * sizeof * (tab[i])); } |
Mais un nouveau se pose: Mon programme rempli un tableau dans le desordre :
|
Tu fais erreur, "malloc" ne remplit pas une zone, il l'alloue. Schématiquement, tu as une grosse zone mémoire de 512Mo évidemment remplie de tout ce que l'ordinateur y a mis avec les différents programmes qui se sont exécutés depuis son démarrage.
Puis, tu demandes à "malloc" de te réserver une zone. Ben "malloc" pose un verrou à un certain endroit de la mémoire et dit "à partir de là et de maintenant, les n octets suivants sont à moi". Dans cette procédure, il n'y a pas de remplissage.
Maintenant, si tu affiches les "n" octets que malloc t'a réservé, ben tu n'affiches que leur contenu résiduel...