Wieso kann ich ein 2dimensionales Feld nicht übergeben?
-
Ich arbeite mit Borland C++
Das Prog schaut so aus:include....
void u_prog(int feld);
void main()
{
int feld[2][2];
u_prog(feld);
cout<<feld[2][1];
}void u_prog(int feld)
{
feld[2][1]=7;
}vielleicht kann mir da jemand weiterhelfen?
mfg hihaas
-
Das ist nicht möglich, du musst es z.B. in eine Struktur packen und diese übergeben
-
Die Waldfee schrieb:
Das ist nicht möglich, du musst es z.B. in eine Struktur packen und diese übergeben
ne falsch, das was du gesagt hast, gilt nur bei rückgabewerten.
void u_prog(int feld);
diese funktion nimmt nur einen einzelnen int an,und kein array, du musst auch in der funktion dann die arraydimensionen bei feld mit angeben, oder direkt nur einen einzelnen int des arrays übergeben.
aber was mit sonst noch auffällt:
void main() war schon immer falsch, es sollte int main() benutzt werden.
-
void u_prog ( int feld [] []) { feld [2][7] = 7; }
-
oh man, alles was hier steht (außer das von otze) ist falsch. und ich glaube es gibt hier hunderte von threads, mit dem titel "zwei / mehrdimensionale felder übergeben" ... in einem von denen (wenn nicht in allen) steht die lösung.
-
void u_prog(int *feld,int x,int y); int main() { int feld[3][2]; u_prog(&feld[0][0],2,1); cout<<feld[2][1]; return 0; } void u_prog(int *feld,int x,int y) { *(feld+x*2+y)=7; }
-
mata schrieb:
oh man, alles was hier steht (außer das von otze) ist falsch. und ich glaube es gibt hier hunderte von threads, mit dem titel "zwei / mehrdimensionale felder übergeben" ... in einem von denen (wenn nicht in allen) steht die lösung.
Häufig hilft auch einfach ein Blick in die FAQ:
http://www.c-plusplus.net/forum/viewtopic.php?t=58906