2D array als Parameter übergeben mit variabler Größe
-
Hi.
Habe folgendes Prog:
#include <stdlib.h> int Matrix[5][5]; int Matrix2[23][40]; void test(int Matrix[][]){ Matrix[1][1]=5; } void main(){ test(Matrix); test(Matrix2); }
Ich will also ein 2D Feld übergeben.
Die Größe der Matrix (2D feld) soll jedoch variable sein.
Wie geht das?
Ich habe gehört man kann in C nur eindimensionale Felder als Parameter übergeben. Stimmt das??Gibt es viellicht eine Lösung unter C++?!!
Gruß
madap
-
Lesen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-58906.htmltemplate <int n> void test(int(*Matrix)[n], int firstDimSize){ } int main(){ test(Matrix, 5); test(Matrix2, 23); }
Alternativ:
template <int n, int m> void test(int (&Matrix)[n][m]){ }
Am Besten wäre es allerdings, wenn du deine Matrix nicht als zweidimensionales Feld repräsentieren würdest.
-
Vor kurzem auch hier schon besprochen worden.
-
#include <iostream> template<int x, int y> void foo(int bar[x][y]) { std::cout << x << ' ' << y << std::endl; } int main() { int baz[3][4]; foo<3, 4>(baz); }
Das sieht schon gut aus (Code aus Diskussion siehe Link oben). Aber es geht nicht.
Fehler: c:\..main.cpp(4) : error C2087: '<unbekannt>' : Feldindex fehlt
Was ist da falsch?