Was meinst du mit doppelZeigern. Wieso hat das keine Wirkung?
Sollte doch klar sein! Schau Dir meine Funktion an.
Dieses Geschreibsel, das ghostie da gepostet hat, kann überhaupt nicht funktionieren. Erstens ja, weil man Release nicht auf einem void-Pointer aufrufen kann und zweitens, weil die Funktion den Zeiger selbst nicht verändern kann, da sie ja als Parameter nur eine Kopie des Zeigers erhält. Folgender Code sollte das klarmachen:
|
Quellcode
|
1
2
3
4
5
6
7
|
void SetzeVariable(int Variable, int Wert)
{
Variable = Wert;
}
int Test;
SetzeVariable(Test, 100);
|
Die Variable "Test" hat danach
nicht den Wert 100! Genau das tut ghostie aber in seiner Funktion. Er versucht, den Zeiger zu verändern (nämlich ihn auf NULL zu setzen). Und das kann ja so nicht gehen. Dafür braucht man natürlich einen Zeiger auf einen Zeiger, also einen Doppelzeiger. Wie es bei meiner Version auch zu sehen ist.