Non, sauf si ton compilateur implémente un ramasse miette(normalement pas le cas).
En tout état de cause, l'intruction "ptr2:=ptr1;" ne libère pas et ne doit pas libérer automatiquement ptr2. En effet, considère le code suivant :
var ptr1,ptr2,ptr3:^integer; begin new(ptr2); ptr2^:=20 {20 est donc mis en memoire à l'adresse pointé par ptr2}
ptr3 := ptr2;
ptr2:=ptr1; end; |
Dans ce cas, la case mèmoire qui contenanit 20 ne doit surtout pas être libéré puisque ptr3 pointe toujours dessus.
Message édité par Zozol le 08-03-2006 à 11:25:14