int ausgabe_Torus(short int Torus[DIM_Y][DIM_X])
{
…
}
int main(int argc, char *argv[])
{
…
short int ppsiTorus[DIM_Y][DIM_X];
…
}
Wie rufe ich jetzt die Unterfunktion auf?
ppsiTorus ist ja schon **, die Unterfunktion braucht **, also sollte doch
ausgabe_Torus(ppsiTorus);
funktionieren.
Tut es aber nicht, genauso wie alles andere, was ich schon ausprobiert habe.
Auch die Definition von ausgabe auf "int ausgabe_Torus(short int **Torus) zu ändern hat nichts gebracht…
hier ein kurzes Beispielprogramm in „reinem“ C-Code:
#include
/\* Prototyp \*/
void mataus(int M[][3], int Ze, int Sp);
void main(void)
{
int M[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
mataus(M, 3, 3);
}
void mataus(int M[][3], int Ze, int Sp)
{
int i, j;
for (i=0; i
Statische mehrdim. Arrays bilden in C eine Sonderrolle, da diese 1-dimensional implementiert werden. Bei der Deklaration von n-dim statischen Arrays ist es daher obligatorisch die letzten (n-1) Indizes mit den "Dimensionszahlen" zu benennen (hier 3).
Ich benutze in der Regel bei solchen Fällen eindimensionale Arrays:
int M[3\*3];
Die Indizierung erfolg zB. so: k = M[3\*i+j]
oder dynamische Arrays
Gruß Frank :smile: