[C++] char*[] übergeben

Hi Experten!

Wie übergebe ich denn einer Funktion einen Array aus Zeigern? Beispiel:

void main(int argc,char* argv[]) {
testfunktion(argv);
}

Wie muss der Function-Header aussehen?

Vielen Dank für Eure Hilfe

Lex.

Hi Lexus,

etwa so:

func(char *argv[]);

int main( int argc, char *argv[] )
{
func(argv);
}

Gruß Patrick

Nun, dies geht soweit schon. Nur versuche ich jetzt, diesen Parameter an eine Klasse zu übergeben, etwa so:

class Parameter {
private:
char* argv[];
public:
Parameter(int orgargc, char* orgargv[]) {
argv = orgargv;
}
};

Dabei bricht der Compiler auf der Zeile argv=orgargv ab mit der Meldung: LVALUE required!

Was mache ich falsch?

Gruss

lex.

Hi Lexus,

die Zeile:
argv = orgargv
funktioniert nicht, da es nicht möglich ist einem Array ein
anderes Array zuzuweisen.

Mein Vorschlag ist, Du fügst Deiner Klasse einen Zeiger auf
dieses Array hinzu, dann sieht es ungefähr so aus:

class CTest
{
public:
CTest(int i, char* j[]) { k = (char*(*)[])&j[0]; }

private:
char*(*k)[];
};

Gruß Patrick

1 Like