
Envoyé par
Sve@r
Bonjour
allocatedMem1 et allocatedMem2 contiennent 2 adresses qui sont situées sur un même plan. Donc tu peux calculer leur distance (en octets) et vérifier laquelle est placée avant laquelle. Ensuite te suffit d'écrire le bon nombre d'octets dans la première pour atteindre la seconde...

Si j'ecrit ça :
1 2
| allocatedMem1 = malloc(2*sizeof(char));
allocatedMem2 = malloc(2*sizeof(char)); |
(si je fais la différence entre les 2 pointeurs il y a 8 octets d'écart )
Ensuite je remplis les 2 buffers :
1 2
| allocatedMem1 = "123456789101112";
allocatedMem2 = "ABCDEFGHIJKL"; |
Et j'affiche le contenu :
1 2
| printf("variable pointer1=%s\n", allocatedMem1);
printf("variable pointer2=%s\n", allocatedMem2); |
le resultat est :
variable pointer1=123456789101112
variable pointer2=ABCDEFGHIJKL
Je ne comprend pas, j'ai alloué en mémoire 2 buffers de 2 octets, donc la premiere chaine devrait etre tronquée et devrait dépassé sur la deuxieme, non ?????
Je devrais avoir quelque chose comme :
variable pointer1=12
variable pointer2=34
Quelqu'un peut il m'expliquer ???
Merci
Partager