[Bulma] Gestió de memòria
Guillem Cantallops Ramis
guillem en cantallops.net
Mie Dic 12 00:44:23 CET 2007
On Dec 11, 2007 11:58 PM, Alejandro Exojo <suyabadopi.org> wrote:
> ¿Llavors que és el que ha d'anar sempre a la pila? ¿Els paràmetres de les
> funcions, o altres variables també?
Els punters als arguments, variables petites que vulguis passar per
valor, variables clarament locals o de recursió... però mai
monstruositats. Si veus que són massa grans per a la pila i les
necessites dinàmiques, tira de heap. Si no, de zona de dades.
> ¿I per variables que tenen mida fixa, no
> es podrien allotjar al heap igual que en llenguatges de més alt nivell?
Sí que se poden allotjar al heap, tant si tenen mida fixa com si no:
pots fer servir malloc(). Importa més que la variabilitat de la mida
el fet de que siguin estàtiques ó dinàmiques, i el tamany absolut :-)
Si a més de tenir mida fixa són més estàtiques... pots fer-les globals
o "static" i les tens a la zona de dades tot el temps (que també s'ha
de tenir en compte això de "tot el temps").
Quan veus com va i ho tens en compte va molt bé. Els que no ho volen
tenir en compte normalment cerquen altres tipus de llenguatges O:-)
El que és molt semblant però amb garbage collection (amb comptador de
referències, crec) al heap és el D... no hi he fet res suficientment
gran encara, però no té mal aspecte:
http://www.digitalmars.com/d/memory.html
I moltes coses que en C t'has de fer a pel (o utilitzant llibreries de
tercers) cada vegada que fas un programa minimament seriós, al D són
part del llenguatge. No l'he tocat massa a fons, però així damunt el
paper en som un fan X'-D
--
G. Cantallops Ramis
Más información sobre la lista de distribución Bulmailing