Ich habe ein Problem mit einem Array an eine Funktion übergeben und dann ändern. Zum Beispiel:Ändern eines Zeigers auf ein Array in einer Funktion
void foo(int ** a) {
int * b = new int[3]
//Initialize b, i.e b = {3, 2, 1}
a = &b;
//*a = {3, 2, 1}
}
int * c = new int[3]
//Initialize c; c = {1, 2, 3}
foo(&c);
// c is still {1, 2, 3}. Why?
Ich bin nicht wirklich sicher, warum c
nicht als b
auf das gleiche Array nicht zeigen.
'* a = b;' Sollte funktionieren. Obwohl ich nicht sicher bin, was Sie versuchen zu tun. – Arunmu
@Arunmu Ja, das funktioniert, danke. –
@MarkoStojanovic Ihre Frage ist wenig ähnlich dem Verhalten in [dieser] (http://stackoverflow.com/questions/4776010/pass-by-reference-and-value-with-pointers) Frage so wird es Ihnen auch helfen verstehe dein Problem :) –