pointer aufgaben

aL1ien

Mitglied
Guten Tag,

Ich möchte mich mit dem Umgang mit Zeigern festigen und habe diese Aufgaben gefunden

Char c = 0xA;

Char * pC = &c;
Char ** pCC = &pC;
Char *** pCCC = &pCC;

Beantworte folgende Fragen:

Ich habe nur pCCC. Ich möchte den Wert von c auf 3 ändern.

Lösung?

Angenommen, ich führe eine Variable d ein und pC zeigt auf diese.
Kann ich die Lösung von Frage 3 immer noch anwenden?
(Bitte mit Begründung)

Lösung?

Sei die Annahme in Aufgabe 2 falsch.
Ich habe ein Funktion, die einen char* verlangt, und nur pCCC zur Verfügung.
Wie kann ich pCCC an diese Funktionen übergeben?

Lösung?

Ich finde aber die Lösung partous nicht raus. Kann mir da einer helfen?:/

Vielen Dank!

Grüsse
 
1. Lösung
***pCCC = 3; wird der Wert von c auf 3 geändert.

2. Wieso geht das?
Zuerst wird der Wert pCCC genommen, Dieser Wert steht für eine Addresse im Arbeitspeicher, an dieser wir mit dem anführendem * angewiesen dort nachzuschauen, also so *pCCC. Hier würde nun der Wert von pCC stehen.
durch ein weiteres Sternchen haben wir jetzt aber *(*pCCC) == **pCCC == *pCC == pC.
das lässt sich dann wieder weiter führen:
***pCCC == **pCC == *pC == c.
zeigt nun pC anstatt auf c auf d, macht da ***pCCC nichts aus, da es ja zuerst über pCC bei pC anfragen wird, auf welche Addresse den pC zeigt.

3. Übergabe
char ***pCCC soll einem char *para übergeben werden
para = **pCCC,
etwas ausführlicher geschreiben sieht das so aus:
Code:
void funktion(char *c)
{
//Tu irgendwas
}

int main()
{
char ***pCCC;
funktion(**pCCC);
return 0;
}
 
Zurück