Array als Rückgabewert ?

Hmm noch ne Frage zu Arrays:

Wie kann ich den Inhalt eines Arrays einem gleichwertigen Array zu weisen?

PHP:
// So geht es ja nicht (Test ist kein L-Wert)
int Test[5][5];
int Test2[5][5];
Test = Test2;

//das wäre möglich aber ist das die beste Variante ?
for(int i=0;i<6;i++)
{
	for(int j=0;j<6;j++)
	{
		Test[i][j] = Test2[i][j];
	}
}

Mfg Nasenbaer
 
Die reguläre Methode wäre wohl, Element für Element zu kopieren, mit einer Schleife für jede Dimension.

Etwas schneller gehts mit der Funktion memcpy
"void *memcpy( void *dest, const void *src, size_t count );", wobei count= Anzahl der Elemente*sizeof(Element)

Das Ganze lässt sich natürlich in einen überladenen Operator verpacken.
 
Aber nur wenn du eine KOPIE haben willst, nicht wenn man es modifzieren will, wie es der Angabe nach scheinbar vorgesehen ist.

EDIT: Und das memcpy() funktioniert nur mit den eingebauten Datentypen, Klassen (die ja bekanntlich Konstruktoren haben), lassen sich nicht so einfach kopieren.
 
Zuletzt bearbeitet:
Nene es soll schon ne Kopie sein an dieser Stelle :)

Aber um nochmal auf dein 2. Codebeispiel zurückzukommen:

arr x;
int (*test)[10][20] = 0;
x.get(test);


So wie greife ich jetzt test zu? Ich hab verschiedene Möglichkeiten probiert aber es funktioniert nicht..

Eigentlich müsste ich es ja dereferenzieren und dann ganz normal wie bei jedem anderem Array auch aber klappt nicht.
*Test[1][1] = 1; // geht net

MFg Nasenbaer
 
Genau das wollte ich damit sagen :)
Allerdings hab ich bei beiden zugriffsvarianten auch 2 verschiedene Arrays.

Mfg Nasenbaer
 
Code:
class arr
{
private:
	int intern[10][20];

public:
	 void get(int (*&retVal)[10][20])
	 {
		retVal = &intern;
	 }
};


int main()
{
	arr x;

	int (*test)[10][20] = 0;
	x.get(test);

        (*test)[2][3] = 25; /// ZUGRIFF
	
	return 0;
}

Obiges funtkioniert bei mir
 

Neue Beiträge

Zurück