cerhu > comp.* > comp.algorithmes

Etienne (02/05/2011, 09h29)
Bonjour.

Je voudrais juste être bien sûr !!!
lorsqu'on utilise des malloc et des free en C, il n'y a uncun mécanisme
possible de compactage de la mémoire.

Sans quoi je suppose que les adresses retournées par malloc ne seraient
plus valides !

Si par hasard j'étais dans l'erreur, comment pourrai fonctionner de tels
gestionnaire de mémoire ?

Merci
Etienne
JKB (02/05/2011, 09h52)
Le Mon, 02 May 2011 09:29:23 +0200,
Etienne <etienne> écrivait :
> Bonjour.


Bonjour,

> Je voudrais juste être bien sûr !!!
> lorsqu'on utilise des malloc et des free en C, il n'y a uncun mécanisme
> possible de compactage de la mémoire.
> Sans quoi je suppose que les adresses retournées par malloc ne seraient
> plus valides !
> Si par hasard j'étais dans l'erreur, comment pourrai fonctionner de tels
> gestionnaire de mémoire ?


À ma connaissance, ça n'existe pas. Un tel outil ne pourrait pas
simplement aller modifier tous les pointeurs valides sauf à
introduire des algorithmes complexes (et encore...). C'est pour cela
qu'il existe des algorithmes best fit, first fit et quelques
autres... Voir poru cela sous Solaris :

libmtmalloc, libbsdmalloc, libmalloc, libumem...

JKB
Etienne (02/05/2011, 11h30)
Le 02/05/2011 09:52, JKB a écrit :
> À ma connaissance, ça n'existe pas. Un tel outil ne pourrait pas
> simplement aller modifier tous les pointeurs valides sauf à
> introduire des algorithmes complexes (et encore...).


Ok c'est bien ce que je pensais.
Donc les langages du type Java et autre qui utilisent un garbage
collector cache le pointeur dans la structure de l'objet afin de pouvoir
le modifier sans que cela n'ai d'incidence. le référence retourné c'est
finalement qu'un ID d'objet.

Comment fonctionne le C++ du coup ?
dispose t-il d'un garbage collector ?

Etienne
Fabien LE LEZ (02/05/2011, 17h21)
On Mon, 02 May 2011 11:30:42 +0200, Etienne <etienne>:

>Comment fonctionne le C++ du coup ?


Grosso modo, comme C.
C++ permet juste d'automatiser des trucs que tu fais manuellement en
C.

>dispose t-il d'un garbage collector ?


Non. En théorie, on peut en rajouter un, mais je ne sais pas si c'est
utilisé : [..]
Etienne (03/05/2011, 09h06)
Le 02/05/2011 17:21, Fabien LE LEZ a écrit :
> On Mon, 02 May 2011 11:30:42 +0200, Etienne<etienne>:
>> Comment fonctionne le C++ du coup ?

> Grosso modo, comme C.
> C++ permet juste d'automatiser des trucs que tu fais manuellement en
> C.


Ok merci.
Discussions similaires
Question à propose des maps / fragmentation mémoire

Fragmentation mémoire virtuelle

malloc

Probleme d allocation avec malloc, fragmentation ?


Fuseau horaire GMT +2. Il est actuellement 06h25. | Privacy Policy