Zweidimensionales statisches Array als Funktionsparameter
-
Hallo zusammen.
Ich hab eine Zweidimensionales statisches Array, welches ich einer Funktion übergeben möchte. Ich habe verschiedene Wege probiert, aber ohne Erfolg.
Ich verstehe nicht warum folgende Lösung nicht funktioniert:
typedef TCHAR TEXT_ARRAY[24][44]; void MyFunction(TEXT_ARRAY aText); TEXT_ARRAY gaText; int _tmain(int argc, _TCHAR* argv[]) { MyFunction(gaText); return 0; } void MyFunction(TEXT_ARRAY aText) { TEXT_ARRAY laText; }Wenn ich einen Breakpoint in MyFunction setze sehe ich Folgendes:
+ aText 0x00417140 wchar_t (* gaText)[44] wchar_t [44]*
+ gaText 0x00417140 wchar_t (* gaText)[44] wchar_t [24][44]
+ laText 0x0012f64c wchar_t [24][44]So wie ich das verstehe, sind sowohl das globale Array gaText als auch das lokale Array laText zweidimensional. Wieso das 'ÜbergabeArray' aText nicht?
Vielen Dank im Voraus.
-
Weil, wie bei jeder Übergabe eines Arrays, nicht ein Array übergeben wird sondern ein Zeiger auf das erste Element. Übrigens ist entgegen verbreiteter Anfängermeinung das erste Element eines
TEXT_ARRAY[24][44]vom TypTEXT_ARRAY[44]und nicht vom TypTEXT_ARRAY
-
Benutze lieber boost::multi_array.