int main() { int a = 11; int* p = &a; reinitPointeur(p); printf("p*=%d \n",*p); }
int main () { int a=1; int *p = &a; reinitPointeur(&p); printf("%p",p); return 0; }
int main () { int T[10]; char C[7][3]; char tab[10]; char (*p)[10] = &tab; printf(" les valeurs de tailles affichees sont données en octets \n"); printf("a) taille de char: %d \n",sizeof(char)); printf(" taille de int: %d \n" ,sizeof(int)); printf(" taille de double: %d \n" ,sizeof(double)); printf(" taille de char*: %d \n" ,sizeof(char*)); printf(" taille de void*: %d \n" ,sizeof(void*)); printf(" taille de int*: %d \n" ,sizeof(int*)); printf(" taille de double*: %d \n" ,sizeof(double*)); printf(" taille de int**: %d \n" ,sizeof(int**)); printf(" taille de int[10]: %d \n" ,sizeof(T)); printf(" taille de char[7][3]: %d \n \n" ,sizeof(C)); /*printf(" taille de int[]: %d \n" ,sizeof(int[]) */ printf(" taille de tab: %d \n" ,sizeof(tab)); printf(" taille de tab[0]: %d \n" ,sizeof(tab[0])); printf(" taille de &tab[0]: %d \n" ,sizeof(&tab[0])); printf(" taille de *&tab: %d \n" ,sizeof(*&tab)); printf(" taille de *&tab[0]: %d \n \n" ,sizeof(*&tab[0])); printf(" taille de p: %d \n" ,sizeof(p)); printf(" taille de *p: %d \n" ,sizeof(*p)); printf(" taille de (*p)[2]: %d \n" ,sizeof((*p)[2])); printf(" taille de &(*p)[2]: %d \n" ,sizeof(&(*p)[2])); int a = 1; int* v = &a; printf("\n p vaut %p \n", v); v=reinitPointeur(); printf(" p vaut ensuite %p \n", v); return 0; }
int main() { unsigned long int a; char tab[10]; // Question a printf("Question A: \n \n"); a = sizeof(char); printf("sizeof(char) = %lu \n",a); // Le plus petit type et pred donc 1 octet a = sizeof(int); printf("sizeof(int) = %lu \n",a); // 4 octets ou 32 bits a = sizeof(double); printf("sizeof(double) = %lu \n",a); // Un double est plus precis qu'un float donc prend plus de mémoire qu'un float. a = sizeof(float); printf("sizeof(float) = %lu \n",a); // Tout les void*, char*,int*,.... sont de taille 4 car se sont des adresses. // Ici c'est de 4 octets car je marche sur un systeme 32 bits. a = sizeof(char*); printf("sizeof(char*) = %lu \n",a); a = sizeof(void*); printf("sizeof(void*) = %lu \n", a); a = sizeof(int*); printf("sizeof(int*) = %lu \n",a); a = sizeof(double*); printf("sizeof(double*) = %lu \n",a); a = sizeof(int**); printf("sizeof(int**) = %lu \n",a); a = sizeof(int[10]); printf("sizeof(int[10]) = %lu \n",a); a = sizeof(char[7][3]); printf("sizeof(char[7][3]) = %lu \n \n",a); /* a = sizeof(int[]); printf("sizeof(int[]) = %lu \n",a); // Erreur: Ne ne fonctionne pas quand on ne définie pas la taille du tableau */ a = sizeof(tab); printf("sizeof(tab) = %lu \n",a); // Tableau de 10 caractère a = sizeof(tab[0]); printf("sizeof(tab[0]) = %lu \n",a); // 1 seul caractère donc taille 1 a = sizeof(&tab[0]); printf("sizeof(&tab[0]) = %lu \n",a); // car c'est l'adresse du tableau. a = sizeof(*&tab); printf("sizeof(*&tab) = %lu \n",a); // Pointe la valeur de l'adresse du tableau : Donc 10 caracère de taille 1 a = sizeof(*&tab[0]); printf("sizeof(*&tab[0]) = %lu \n \n",a); // Pointe la valeur de l'adresse du tableau : Donc 1 car c'est 1 seul caractère. char (*p)[10] = &tab; // C'est un pointeur sur un tableau de caractère ( l'adresse d'un tableaud e 10 caractères) a = sizeof(p); printf("sizeof(p) = %lu \n",a); a = sizeof(*p); printf("sizeof(*p) = %lu \n",a); // revoie ce qu'il y a à l'adresse de p a = sizeof((*p)[2]); printf("sizeof((*p)[2]) = %lu \n",a); a = sizeof(&(*p)[2]); printf("sizeof(&(*p)[2]) = %lu \n \n",a); // Question b) printf("Question B: \n \n"); int c; int b; c = 2; b = 3; printf(" c = %d et b = %d \n", c, b); echange( &c, &b); printf(" c = %d et b = %d \n \n", c, b); // Question c) printf("Question C: \n \n"); int d = 1; int* q = &d; printf(" q = %p \n ", q); reinitPointeur(&q); printf(" q = %p \n", q); return 0; }