Erreur pointeur de pointeur de char en C
Résolu
perato
-
perato -
perato -
Bonjour,
j'ai fait le code suivant et pour une raison inconnue que test[0] n'affiche plus "ok" alors que je n'y touche pas.
Pourtant j'ai remarque avec printf que la valeur du pointeur test[0] ne change pas.
En plus j'ai aussi remarque que test[0] affichait bien "ok" jusqu'au moment où test[1] est alloué.
j'ai fait le code suivant et pour une raison inconnue que test[0] n'affiche plus "ok" alors que je n'y touche pas.
int main()
{
char **test = malloc(1);
test[0] = malloc(3);
test[0][0] = 'o';
test[0][1] = 'k';
test[0][2] = '\0';
printf("%p\n", test[0]);
puts(test[0]); // affiche ok
test = realloc(test, 2);
test[1] = malloc(3); // a partir de cette instruction puts(test[0]) affiche une chaîne bizzare
test[1][0] = 'o';
test[1][1] = 'k';
test[1][2] = '\0';
printf("%p\n", test[0]); // le pointeur n'a pas changé de valeur
puts(test[0]); // affiche une chaîne bizzare
}
Pourtant j'ai remarque avec printf que la valeur du pointeur test[0] ne change pas.
En plus j'ai aussi remarque que test[0] affichait bien "ok" jusqu'au moment où test[1] est alloué.
A voir également:
- Erreur pointeur de pointeur de char en C
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Erreur 0x80070643 - Accueil - Windows
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
peux-tu partager ce qui est affiché? peux-tu aussi afficher le second pointeur?
Peux-tu supprimer les lignes 14 à 16?
peux-tu partager ce qui est affiché? peux-tu aussi afficher le second pointeur?
Peux-tu supprimer les lignes 14 à 16?
Et d'adapter également la ligne 12.