les adresses (pointeurs) ne sont pas des unsigned int, la taille d'un int et d'un unsigned int est la meme, et sur l'archi 64 bits, on voit qu'un int est de 4 octets, et un pointeur de 8 octets (attention, je ne dit pas que c'est le cas sur tous les proc 64b, c'est juste le cas sur mon exemple...)
dc dans ton prog, la taille de addr n'est pas focement la taille d'un int (ce que tu utilise par le %d des printf), ni celle dun unsigned int (%u), sur mon athlon 32 bits, c'est le cas, mais c'est pas forcement une verite absolue...
enfin, comme dis dans un autre commentaire, un cast et ca repart... le codage de l'adresse n'intervient pas, il suffit de bien utiliser la valeur (dc connaitre le codage intervient en fait ^^ )
ensuite, il faut aussi voir que l'adresse que tu obtiens avec le malloc, c'est une adresse "virtuelle", plusieurs processus peuvent obtenir une meme adresse, et ecrire a des endroits differents dans la memoire, mais a mon avis, ca ne concerne en rien ton probleme, c'est juste au noyau de se debrouiller avec...
[^] # Re: Re : Perdu dans la mémoire (malloc, stack, heap et système)
Posté par adibou . En réponse au message Perdu dans la mémoire (malloc, stack, heap et système). Évalué à 3.
dc dans ton prog, la taille de addr n'est pas focement la taille d'un int (ce que tu utilise par le %d des printf), ni celle dun unsigned int (%u), sur mon athlon 32 bits, c'est le cas, mais c'est pas forcement une verite absolue...
enfin, comme dis dans un autre commentaire, un cast et ca repart... le codage de l'adresse n'intervient pas, il suffit de bien utiliser la valeur (dc connaitre le codage intervient en fait ^^ )
ensuite, il faut aussi voir que l'adresse que tu obtiens avec le malloc, c'est une adresse "virtuelle", plusieurs processus peuvent obtenir une meme adresse, et ecrire a des endroits differents dans la memoire, mais a mon avis, ca ne concerne en rien ton probleme, c'est juste au noyau de se debrouiller avec...