8 Pointeurs C PDF
8 Pointeurs C PDF
8 Pointeurs C PDF
Les pointeurs en C
Oprateurs * et &, priorit Dclaration : type et fonction (define, struct, union)
27
Tableaux et pointeurs, initialisation Passage par adresse : scanf Retour des fonctions : struct, union, fonction Allocation dynamique i=27 pi = adresse(i); /* adresse de la cellule mmoire qui contient la valeur 27 */
j
21
Ad(i)
j
21
ip
Ad(i)
*ip=j;
21
a et b inchanges
a et b changes
int ti[]; double td[]; char tc[]; struct nud tn []; struct nud { int i; struct nud *s; }
TD/sizeof.c
t[i] = *(t+i)
Les seules oprations possibles : -prendre ladresse avec & : pn = &n -accder une valeur : n.val = 11 ou pn->val = 11 ou *pn.val = 11
Exemple
object *pObjet;
(*affiche[obj.type])(pObjet);
Fonction scanf (contrle, arg1, arg2, ..) : lecture standard (stdin); sscanf, fscanf
char *str="25 annes 15.3" ; int i; double f; sscanf(str, "%d %*s %f" , &i,&f)
http://www-bio3d-igbmc.u-strasbg.fr/~wurtz
pointeur/allocation.c
http://www-bio3d-igbmc.u-strasbg.fr/~wurtz
pointeur/tableau1_malloc.c
http://www-bio3d-igbmc.u-strasbg.fr/~wurtz
pointeur/tableau1-char-malloc.c
//une variable cercle struct Cercle { //et un pointeur de cercle struct Point c; // le centre double r; // le rayon Struct Cercle ce, *pce; } struct Cercle * crerCercle(struct Point *c, double r)
Dcrire un polygone
#define POLYGONE 3 typedef struct Polygone { TPoint centre; //le centre de masse int taille; // nbre de points TPoint *poly; //la liste des points } TPolygone; TPolygone * creerPolygone(TPoint tp[], int taille) void affPolygone(TPolygone *po)
#define CERCLE 0 typedef struct Cercle { TPoint centre; // le centre double rayon; // le rayon } TCercle; TCercle * crerCercle(TPoint *c, double r)