Pourquoi, lorsque l’on libère une zone mémoire, constate t-on que les valeurs des deux premiers octets changent ?
Je m’attendais à ce que FreeMemory() indique simplement au programme que la zone est à nouveau disponible pour être réutilisée en tout ou partie par un autre processus, mais sans qu'une valeur de cette zone ne soit changée!
Pourquoi certaines valeurs sont-elles amenées a changer ? Quel est l’intérêt?
Idée farfelue : Est-ce une précaution vis à vis des listes chaînées par hasard ?
Code : Tout sélectionner
Structure elmt
a.l
b.l
c.l
d.l
EndStructure
*List.elmt = AllocateMemory(SizeOf(elmt))
*List\a = 10
*List\b = 11
*List\c = 12
*List\d = 13
Debug *List\a
Debug *List\b
Debug *List\c
Debug *List\d
Debug "---------"
FreeMemory(*List)
Debug *List\a
Debug *List\b
Debug *List\c
Debug *List\d