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

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2005

[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?

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004

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

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2005

ja

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004

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); }

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007
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.

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2005

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.

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004
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.