[SOLVED] char[] mittels pointer auf pointer in funktion
-
hallo again,
obwohl es schon einige beiträge bezügl. dieses themas gibt, hab ich keine antwort auf meine frage gefunden:
int main() { char* array[10]; tuWas(array); } void tuWas(char** array[]) { /* hier wird array verändert bzw. beschrieben */ *array[0] = "asdf"; }
ich möchte also das in main() deklarierte array an tuWas() übergeben. tuWas() verändert das array und main kann mit dem veränderten array weiterarbeiten. nur ich so wie ich das geschrieben habe funktioniert das nicht... und ich weiß nicht, wie ich es sonst schreiben sollte.
danke im voraus!
PS: mir ist klar, dass *array[0] = "string"; exploitable ist -> ist nur eine demo-zeile
-
hallo,
schrib das mal so.
#include <iostream.h> void tuWas(char* array[]); int main() { char* array[10]; tuWas(array); cout<<array[0]<<endl; return 0; } void tuWas(char* array[]) { /* hier wird array verändert bzw. beschrieben */ array[0] = "asdf"; }
MFG TaccoGo
-
ja, das funktioniert
aber ich dachte, dass da eine kopie übergeben und nicht ein pointer auf das array...übrigens sind wir hier bei ANSI C und net C++
thx,
ciao
-
tud mir leid das war die gewonhet das ich c++ benutzt habe.
du möchtest nur die werte als kopie übergeben?
momet das brobire ich gleich mal.MFG TaccoGo
-
Hallo,
ist doch etwas schirk.
man muss den inhaltsoperator benutzen um nur den inhalt zu kopiren.
aber ich weis nicht wie ich das dan abfange.#include <stdio.h> void tuWas(char* array[]); int main() { char* array[10]; array[0] = "test"; tuWas(*array); printf(array[0]); printf("\n"); return 0; } void tuWas(char* array[]) { /* hier wird array verändert bzw. beschrieben */ array[0] = "asdf"; printf(array[0]); }
PS: ich hofe das ist jetz ansi-c
MFG TaccoGo
-
hephaistos6 schrieb:
aber ich dachte, dass da eine kopie übergeben und nicht ein pointer auf das array...
Es werden auch Kopien übergeben, allerdings von Zeigern; mehrere Zeiger können auf das gleiche Ziel zeigen.
Allg. zum Thema Zeiger, Felder, Zeiger auf Felder usw. usf. ist evtl http://www-info2.informatik.uni-wuerzburg.de/dclc-faq/kap2.html ganz interessant.
-
Daniel E. schrieb:
hephaistos6 schrieb:
aber ich dachte, dass da eine kopie übergeben und nicht ein pointer auf das array...
Es werden auch Kopien übergeben, allerdings von Zeigern; mehrere Zeiger können auf das gleiche Ziel zeigen.
Allg. zum Thema Zeiger, Felder, Zeiger auf Felder usw. usf. ist evtl http://www-info2.informatik.uni-wuerzburg.de/dclc-faq/kap2.html ganz interessant.
super! danke dir.
ciao