C/++ ist nicht die einfachste Sprache um "anzufangen". An einem guten
Buch wirst du kaum drum herum kommen.
Zu deinem Problem: "feld" ist eine lokale Variable, auf die nur im
lokalen Kontext zugegriffen werden kann; also hier nur in main().
Damit die Funktion "erzeugen" darauf zugreifen kann, mußt du das Feld an
die Funktion übergeben. Das geht grundsätzlich entweder "by-value" oder
"by-reference". Arrays sind ein doppelter Sonderfall. Da geht es nur
"by-reference" (was du hier aber sowieso brauchst). Und um die
Feld-Größe zu übergeben, braucht es eine "spezielle" Syntax:
1 | #include <iostream>
|
2 | #include <string>
|
3 |
|
4 | using namespace std;
|
5 |
|
6 | void erzeugen(int (*feld)[4][4])
|
7 | {
|
8 | for (int i=0;i<=3;i++)
|
9 | {
|
10 | for (int o=0;o<=3;o++)
|
11 | {
|
12 | cout<<(*feld)[i][o]<<" ";
|
13 | }
|
14 | cout<<"\n";
|
15 | }
|
16 | }
|
17 | int main()
|
18 | {
|
19 | int feld[4][4];
|
20 | feld[0][0]=0;
|
21 | feld[0][1]=1;
|
22 | feld[0][2]=2;
|
23 | feld[0][3]=3;
|
24 | feld[1][0]=1;
|
25 | feld[1][1]=0;
|
26 | feld[1][2]=0;
|
27 | feld[1][3]=0;
|
28 | feld[2][0]=2;
|
29 | feld[2][1]=0;
|
30 | feld[2][2]=0;
|
31 | feld[2][3]=0;
|
32 | feld[3][0]=3;
|
33 | feld[3][1]=0;
|
34 | feld[3][2]=0;
|
35 | feld[3][3]=0;
|
36 | erzeugen(&feld);
|
37 |
|
38 | cout<<"\n\n\n\n\n\n"<<endl;
|
39 | cin.clear();
|
40 | cin.ignore(cin.rdbuf()->in_avail());
|
41 | cin.get();
|
42 | return 0;
|
43 | }
|
Alternativ deklariest du "feld" global bevor es irgendwo benutzt wird.
Globale Definitionen sollten allerdings mit Bedacht eingesetzt werden,
da sie zu schwer wartbaren Code führen können.
1 | #include <iostream>
|
2 | #include <string>
|
3 |
|
4 | using namespace std;
|
5 |
|
6 | int feld[4][4];
|
7 |
|
8 | void erzeugen()
|
9 | {
|
10 | for (int i=0;i<=3;i++)
|
11 | {
|
12 | for (int o=0;o<=3;o++)
|
13 | {
|
14 | cout<<feld[i][o]<<" ";
|
15 | }
|
16 | cout<<"\n";
|
17 | }
|
18 | }
|
19 | int main()
|
20 | {
|
21 | feld[0][0]=0;
|
22 | feld[0][1]=1;
|
23 | feld[0][2]=2;
|
24 | feld[0][3]=3;
|
25 | feld[1][0]=1;
|
26 | feld[1][1]=0;
|
27 | feld[1][2]=0;
|
28 | feld[1][3]=0;
|
29 | feld[2][0]=2;
|
30 | feld[2][1]=0;
|
31 | feld[2][2]=0;
|
32 | feld[2][3]=0;
|
33 | feld[3][0]=3;
|
34 | feld[3][1]=0;
|
35 | feld[3][2]=0;
|
36 | feld[3][3]=0;
|
37 | erzeugen();
|
38 |
|
39 | cout<<"\n\n\n\n\n\n"<<endl;
|
40 | cin.clear();
|
41 | cin.ignore(cin.rdbuf()->in_avail());
|
42 | cin.get();
|
43 | return 0;
|
44 | }
|