Ich hatte am Anfang mal das gleiche Problem.
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=6575
Lies mal das, ist sehr gut erklärt. Wenn du noch Fragen hast,kannst sie ja dann schreiben.
ok vielen dank erstmal
also ich habs gelesen - aber verstanden wohl nicht ganz...
immerhin habe ich jetzt ein Listing das mal Anfängt das zu tun was ich gerne will:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <iostream>
using namespace std;
void ZeichneSpielfeld(char Spielfeld[4][5]);
int main()
{
char Spielfeld[4][5];
int Ende;
ZeichneSpielfeld(Spielfeld);
cout << Spielfeld[3][3] << endl;
cin >> Ende;
return 0;
}
void ZeichneSpielfeld(char Spielfeld[4][5])
{
Spielfeld[3][3] = ('A');
}
|
Da Arrays Zeiger sind, braucht man sich also keine Gedanken über Stack und hin und herschaufeln zu machen... wie praktisch.
Jetzt bekomm ich aber folgendes nicht hin:
ich will ja keine Zahl ins Array schreiben sondern eben [Breite] [Hoehe] und diese seperat als const int deklarieren und initialisieren.
Also dachte ich: ist ja einfach, schreib ich einfach überall wo 4 steht Breite hin und überall wo 5 steht Hoehe... dann schreib ich noch hin das Breite ein const int 55 und Hoehe ein const int 20 sein soll.
Das bekomm ich aber nur zum Laufen wenn ich die Breite und Hoehe global deklariere... und globale Variablen sind doch böse!
Wie bekomm ich das so hin, das ich zwar den Funktionsprototypen draussen, die Variablen aber drinnen deklarieren kann?
Hier das Listing wie es geht, mit den globalen Variablen Breite und Hoehe:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
using namespace std;
const unsigned int Breite = 55;
const unsigned int Hoehe = 20;
void ZeichneSpielfeld(char Spielfeld[Breite][Hoehe]);
int main()
{
char Spielfeld[Breite][Hoehe];
int Ende;
ZeichneSpielfeld(Spielfeld);
cout << Spielfeld[3][3] << endl;
cin >> Ende;
return 0;
}
void ZeichneSpielfeld(char Spielfeld[Breite][Hoehe])
{
Spielfeld[3][3] = '5';
}
|
schonmal danke für die Antworten!
Nelrim