Probleme de logique

Il cherche à lire ce qu’il y a à l’adresse 6500 surtout… ce qui va produire un gros bordel imprévisible. La valeur de *(6500) c’est le chaos ! :slight_smile:

#include <stdio.h>
#include <conio.h>

main()
{
int a,*ptr;
clrscr();
a=6500;
ptr=&a;

printf ("a= %d",a);
printf ("\n");
printf ("ptr=%u",ptr);
printf ("\n");
printf ("*ptr=%d",*ptr);

printf ("**ptr=%d",(ptr)); / a la compile il me dit qu’il ne sait pas faire ca lol/

getch();
}

Normal :slight_smile: il ne sait pas quel est le type de données à l’adresse bidule.

Tu sais me donner un exemple ou ça marche , merci

int a;
int* b = &a;
int** c = &b;

printf(
  " a = %d\n"
  " *%p = %d\n"
  " **%p = *%p = %d\n",
  a, b, *b, c, *c, **c );


Maintenant j’ai pas fait de C depuis un peu de temps, donc bon j’ai pas testé.

#include <conio.h>
#include <stdio.h>

main()
{
int a=12;
int *b = &a;
int *(*c) = &b; /* je comprend pas d'ou sort l'adresse */
clrscr();


printf("a = %d   b=%u   b*=%d  **c=%u",a, b, *b,**c );

getch();
}

Tu affecte l’adresse de “a” à un pointeur b qui pointe sur l’adresse de a et qui vaut 12. Jusqu’à la ça va mais l’adresse de b , elle sort d’ou et c’est l adresse de quoi (du pointeur)?

Ben :slight_smile: b c’est une variable de type “pointeur sur int”
donc &b c’est l’adresse d’une variable de type “pointeur sur int”

C’est tout.

merci j’ai compris maintenant.j’ai réfléchi étape par :jap: étape.

c ce que j’aime en C :

faut tout dire ce qu on fait, mais ce qu on dit pas il le fait pas …

*** nostalgie de la prog en toolkit et widget C sous X …, 18 variables par fonction… 36 niveaux de pointeurs… ***

quaz> c’est excellent un foo( type*** ptr ) :smiley:

Bon ben c’est dans la poche , j’ai réussi mes 2 exams , me vla en 2eme. Bonne continuation