Bonjour,
J'ai ce bout de code là et je voudrais savoir les choses suivantes . D'abord si vous pouvez y jeter un coup d'oeil.
Mon problème ce situe au niveau de la ligne après le troisième affichage. Je ne demande ou le pointeur se situe. En traçant le programme je m'appercoit que ça pointe sur la valeur 18... ce que je ne m'explique pas. Ensuite, pourquoi ça plante la quatrième affichage ?? Est-ce que c'est parce qu'on essaie de lire une adresse mémoire ???
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 int * bonjour =(int*)malloc(50*sizeof(int)); int *allo = bonjour; int i; for(i=1;i<=50;i++) *allo++ = i; *(int*)(&bonjour-2)= 18; allo= allo - 1; *allo = 999; allo= allo - 1; *allo = 777; allo= allo - 1; *allo = 888; printf("%d\n", (bonjour-100)[147]); // Premier affichage printf("%d\n", allo-bonjour); // Deuxième affichage printf("%d\n",i); // Troisième affichage allo=(int*)(&allo+1); printf("%p\n", **(int**)allo); // Quatrième affichage free(bonjour);
Merci![]()
Partager