Macintosh | Programmering |
Du skapar ett nytt handtag av storlek size genom kommandot:
När du har använt informationen i handtaget färdigt kan du frigöra minnet igen genom kommandot:
Notera att du kommer att få allvarliga fel i ditt program om du försöker komma åt någonting i minnet som du gjort dig av med på detta sätt.
Du kan kontrollera storleken som har allokerats åt ett visst handtag genom kommandot:
Du kan också ändra storleken på blocket. Informationen som lagras i blocket förändras inte av att storleken ändras. Naturligtvis kan information trunkeras på slutet om handtaget görs för litet, men i övrigt är informationen intakt.
Motsvarande funktioner finns naturligtvis även för pekare:
Om du behöver allokera stora mängder minne kan det vara bra att veta hur mycket minne som finns fritt i minnet. Det kan du ta reda på med funktionerna:
Om allokering av ett handtag eller en pekare misslyckas sätts variabeln till 0L.
Att använda handtag kan ibland ställa till med problem. Om en funktion tar en pekare som argument och du skickar den ett avrefererat handtag (*handle), så kommer pekaren att bli ogiltig om blocket skulle flyttas under det att funktionen utförs. Många av systemfunktionerna flyttar block i minnet för att göra plats för de egna strukturer de allokerar. Därför måste du alltid låsa ett handtag, det vill säga göra det oflyttbart, innan du anropar en systemfunktion med det avrefererade handtaget. Det görs genom kommandot:
När du är klar med anropet, bör du låsa upp blocket igen, så att det kan flyttas och lämna plats för andra block. Det gör du med kommandot:
Bland minnesrutinerna finns det också en funktion för att kopiera data mellan olika platser i minnet. Det görs genom anropet:
Det ska också nämnas att Macintoshen saknar funktioner för att köra program i skyddade minnesområden. Det betyder att om det blir fel i ett program, så kan dess rutiner skriva över minnet som används av andra program, så att även dessa program råkar ut för fel. Resultatet blir oftast att hela datorn hänger sig. Det är därför viktigt att man är extra noggrann med minneshanteringen när man programmerar Macintoshen. Om man vill kan man använda sig av speciella avlusningsprogram, som kontrollerar alla minessanrop så att de är korrekta.
Författat av Niklas Frykholm