G
Zeiger werden eigentlich in so gut wie jedem Programm verwendet. Eine Hauptaufgabe dabei ist die Wertübergabe an Funktionen. Stell dir vor, du hast ein Array oder eine Struktur von mehreren KB an Grösse. Und das möchtest du an eine Funktion weitergeben. Anstatt den Compiler allzu sehr zu fordern und ihm aufzuerlegen, Code zu erzeugen, um den gesamten Bereich in den Stack zu kopieren, gibst du der Funktion lediglich die Anfangsadresse auf diesen Bereich in einem Zeiger-Argument mit. Dies hat ausserdem den Vorteil, dass du die Daten in dem Bereich direkt ändern kannst. Würde er lediglich im Stack, sozusagen als Kopie, der Funktion zur Verfügung stehen, hast du zwar die aktuellen Werte, alle Änderungen wären aber beim Verlassen der Funktion verloren.