Premiär! Fyndchans i SweClockers Månadens Drop

[C++] skicka referens till en multidimensionell array till funktion

Permalänk
Medlem

[C++] skicka referens till en multidimensionell array till funktion

Hej,

Som rubriken avslöjar så har jag lite problem med att skicka en referens till en multidimensionell array som argument till en funktion. Någon som kan hjälpa mig med detta problem?

Permalänk
Hedersmedlem

Vet man i förväg hur stor den är?

Permalänk
Medlem
Permalänk
Hedersmedlem

I så fall är det väl bara att köra på:

void q(int p[2][2][2]) { p[1][1][1] = 17; } int main(int argc, char** argv) { int i[2][2][2] = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}; q(i); }

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Elgot
I så fall är det väl bara att köra på:

Fast i ditt exempel använder du inte en referens till arrayen. Signaturen på q borde i så fall vara

void q(int (&p)[2][2][2])

om jag inte är ute och cyklar. Ännu roligare blir det om man vill returnera en referens till en array.

Det vettigaste borde dock vara att använda t.ex. boost::multiarray istället, men det beror givetvis på vad det är du är ute efter att göra.

Permalänk
Medlem

Tack för svaren. Jag ändrade i programmet och behöver inte längre använda mig av multidimensionella arrayer. Men nu vet jag hur jag ska göra till nästa gång.

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av perost
Fast i ditt exempel använder du inte en referens till arrayen. Signaturen på q borde i så fall vara

void q(int (&p)[2][2][2])

om jag inte är ute och cyklar.

Det har du rätt i.