1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#include <stdio.h>
#include <stdlib.h>
main()
{
/* i une variable de type entier initialisé a 3
-ed- OK */
int i=3;
/* pointeur sur entiers
-ed- OK, mais on peut préciser 'non initialisé',
ce qui est une source d'ennuis pour un pointeur... */
int *p;
/* afficher la valeur de p avant intialisation
-ed- OK, mais on peut préciser que la valeur étant indéfinie, le comportement est indéfini (la valeur ne peut pas être vérifiée).
*/
printf("valeur de p avant initialisation = %ld\n",p);
/*allocation de memoire avec malloc qui retourne un pointeur
-ed- malloc() ne retourne pas un 'pointeur', mais une 'adresse'.
D'autre part, il serait intéressant de commenter la taille allouée
et de monter à quoi elle correspond...
*/
p=(int*)malloc(sizeof(int));
/*afficher p apres initialisation
-ed- OK
*/
printf("valeur de p apres initialisation = %ld\n",p);
/* -ed- pas d'idee ? si p est un pointeur, que représente *p ? */
*p=i;
printf("valeur de *p=%d\n", *p);
} |