« Programmation C/Pointeurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Balise : Révoqué
Ligne 221 :
Il est possible avec un pointeur de lire/parcourir les éléments d'une structure.
Chaque éléments d'une structure utilise un espace qui permet de calculer des déplacements.
<source lang="c">
#include <stdio.h>
#include <string.h>
Ligne 229 ⟶ 230 :
}s;
int
main(void){
{
struct s st={1,1,"salut"};
void *p=&st;
printf ("%s\n",
(char *)((void **)p)[1]);
/*<==OU==>*/
p += 2*sizeof(int);
printf ("%s\n",
(char *)((void **)p)[0]);
/*<=DE LA MEME MANIERE=>*/
p -= 2*sizeof(int);
/*====================================*/
memset (p,-1,
2*sizeof(int));
printf ("%i,%i\n",
st.a, st.b);
memset ((int *)p,0,
2*sizeof(int));
printf ("%i,%i\n",
st.a, st.b);
((int *)p)[0] = 1;
((int *)p)[1] = 0;
printf ("%i,%i\n",
st.a, st.b);
printf ("%s\n",st.s);
return 0;
}
</source>
 
== Utilisation des pointeurs pour passer des paramètres par adresse ==