Een groot deel van de kracht van C/C++ ligt in pointers. Pointers zijn een speciale variabeles, met eigenlijk 2 waardes. Pointers verwijzen naar andere variabeles. De twee waardes van een pointer zijn het geheugenadres waarnaar toe verwezen wordt, en de inhoud van dat geheugenadres.
Er schuilt ook een gevaar in pointers, als je ze verkeerd gebruikt, kun je verkeerde dingen in het RAM zetten, en je computer zelfs laten crashen. (Altijd leuk, het geheugen van je vervelende broertje/zusje volschrijven met nulletjes )
Aanwijzingen voor gebruik met C#: Als je dit in C# wilt doen, moet je de het deel (context) waarin je pointers wilt gebruiken 'unsafe' maken. Dat doe je door 'unsafe' voor de declaratie van je functie te zetten.
Basisbeginselen van pointers, geldt voor C en C++
Zo declareer je een pointer:
int *pTesti; //pointer voor een integer
int i; //gewone integer
float *pTestf; //pointer voor een float
float f; //gewone float
Zo zet je een geheugenadres van 'i' in 'pTesti':
pTesti = &i;
& is de "adres van" operator, hij geeft het adres terug van de variabele.
Zo wijzig je 'pTesti':
*pTesti = 56;
Nu zal 'i' ook 56 bevatten. Hetzelfde geldt natuurlijk voor floats, shorts, size_ts en alle andere soorten variabeles, zelfs zelfgemaakte ( struct lala {int pit;}; )
Pointers naar classes, geldt alleen voor C++
In C++ worden pointers ook vaak gebruikt voor classes, zo declareer je meestal een class:
Class *pT;
pT = new Class();
De 'new' operator geeft een pointer naar een geconstructueerde class terug. Als een class niet kon worden geconstructureerd geeft 'new' en null-pointer terug. Een null-pointer is een pointer die nergens naar verwijst.
Zo kun je testen of alles goed gegaan is:
Class *pT;
pT = new Class();
if (pT == NULL)
{
//Hier je fout-afhandeling, meestal een return FALSE of zoiets
}
Om de class later weer uit het geheugen te verwijderen, gebruik je
delete pT;
Dit was het wel zo'n beetje, als er nog iets bij moet of als ik iets vergeten/verkeerd gezegd heb, post je maar!
Een groot deel van de kracht van C/C++ ligt in pointers. Pointers zijn een speciale variabeles, met eigenlijk 2 waardes. Pointers verwijzen naar andere variabeles. De twee waardes van een pointer zijn het geheugenadres waarnaar toe verwezen wordt, en de inhoud van dat geheugenadres.
Er schuilt ook een gevaar in pointers, als je ze verkeerd gebruikt, kun je verkeerde dingen in het RAM zetten, en je computer zelfs laten crashen. (Altijd leuk, het geheugen van je vervelende broertje/zusje volschrijven met nulletjes
)
Aanwijzingen voor gebruik met C#: Als je dit in C# wilt doen, moet je de het deel (context) waarin je pointers wilt gebruiken 'unsafe' maken. Dat doe je door 'unsafe' voor de declaratie van je functie te zetten.
Basisbeginselen van pointers, geldt voor C en C++
Zo declareer je een pointer:
Zo zet je een geheugenadres van 'i' in 'pTesti':
& is de "adres van" operator, hij geeft het adres terug van de variabele.
Zo wijzig je 'pTesti':
Nu zal 'i' ook 56 bevatten. Hetzelfde geldt natuurlijk voor floats, shorts, size_ts en alle andere soorten variabeles, zelfs zelfgemaakte ( struct lala {int pit;}; )
Pointers naar classes, geldt alleen voor C++
In C++ worden pointers ook vaak gebruikt voor classes, zo declareer je meestal een class:
De 'new' operator geeft een pointer naar een geconstructueerde class terug. Als een class niet kon worden geconstructureerd geeft 'new' en null-pointer terug. Een null-pointer is een pointer die nergens naar verwijst.
Zo kun je testen of alles goed gegaan is:
Om de class later weer uit het geheugen te verwijderen, gebruik je
Dit was het wel zo'n beetje, als er nog iets bij moet of als ik iets vergeten/verkeerd gezegd heb, post je maar!
Bewerkt: door JGuntherS