pointer pointer macht mir Sorgen
-
Hallo,
wahrscheinlich nur ein hirnknoten meinerseits aber vieleicht könnt ihr ihn mir mal schnell entknoten:
aus meiner main rufe ich eine funktion auf, welche mir die kommandozeilenargumente parst. Jene hat folgende Signatur:
static bool parseTCPparams(char** pArgs, int& argc, TcpParams& tcp)innerhalb dieser inkrementiere ich pArgs von Zeit zu Zeit und decrementiere argc.
Nach dem Rücksprung ist der wert von argc auch in der main() auf dem letzten Stand innerhalb der parse-funktion. pArgs zeigt jedoch wieder auf das Argument, auf das es vor dem Einsprung in parseTCPparams gezeigt hat (das möchte ich jedoch nicht).was ist da faul?

-
char** ist ein array aus den kommando argumenten. Wenn du da jetzt drüber inkrementierst, inkrementierst du lediglich eine Kopie des originals. Wenns so sein soll wie du sagst, musst du die funktion so haben:
void fkt(char**& argv, int& argc, ...);
-
Oder noch ein Sternchen mehr dazu

-
//(A) //Als Zeiger void fkt(char*** argv,int& argc,...); //Aufruf fkt(&argv,argc,...): //(B) //Als Referenz void fkt(char**& argv, int& argc, ...); //Aufruf fkt(argv,argc,....);
-
Ich dank euch recht herzlich.
habs jetzt mit der pointerpointer ref gemacht (nur admiräle haben drei sterne oder?)
tatsächlich hatte ich die richtige lösung bereits vor der antwort von Maxi einmal ausprobiert.
Da hatte ich dann jedoch noch nen logischen fehler beim parsen, sodass es auch zu ner exception kam. Daraus hab ich dann gefolgert, dass man das nicht mischen sollte... (ich sollte halt echt aufpassen beim debuggen
)dank euch jedenfalls vielmals