TicTacToe - Konsolenanwendung - weiteres Fenster öffnen?
-
Ein indirektes Zitat Ohne Quellenangaben geht schon in Ordnung - denke ich.
Aber sicher! Deshalb auch: bitte.
<pedantic>
Ich würde trotzdem dessen für wessen und hält für hällt setzen.
-
Nun zurück zum Problem:
Du benennst einfach das lokale um, sodass es das globale nicht mehr maskiert.
Das Problem war, dass ich das globale Prüffeld Array mit den neuen/alten Werten versehen wollte. Es soll kein zweites lokales Array mit gleichem Namen erstellt werden. Aus der Funktion cleararray heraus - soll das globale Prüffeld-Array mit neuen Werten versehen werden.
Drücke ich mich so ungenau aus? (Lese gleich nochmal nach ...)
-
Noch mal die Frage an euch:
Wie initialisiere ich ein globales Array neu - aus einer Funktion heraus?
-
shaun1981 schrieb:
Wie initialisiere ich ein globales Array neu - aus einer Funktion heraus?
initialisieren geht nur beim programmstart. sonst kannst du es nur manuell platt machen, z.b. mit 'memset' o.ä.
-
Moment:
Meine Funktion sieht so aus:
// Array Daten entfernen // void cleararay(void) { int a,b; for (a=0;a<3;a++) { for (b=0;b<3;b++) { feld [a][b] = '.'; } } prüffeld [3][3] = 2,1,2,1,3,1,2,1,2; return;
Array FELD wird hier doch auch neu inititalisiert? Oder nutze ich den falschen Begriff? Abgesehen davon arbeitet mein Programm mit diesen globalen Array´s - innerhalb der Funktionen. Ich find den Faden einfach nicht ... verdammt!
-
Oh mein Gott ... so ein blutiger Anfänger Fehler!
sollte das ganze nicht so oder ähnlich aussehen?
prüffeld [0][0] = 2; prüffeld [1][0] = 1; prüffeld [2][0] = 2; prüffeld [0][1] = 1; prüffeld [1][1] = 3; prüffeld [2][1] = 1; prüffeld [0][2] = 2; prüffeld [1][2] = 1; prüffeld [2][2] = 2;
-
shaun1981 schrieb:
Array FELD wird hier doch auch neu inititalisiert?
ja, das ist aber kein globales feld, wie in deiner frage davor.
shaun1981 schrieb:
sollte das ganze nicht so oder ähnlich aussehen?
als initialisierung dann etwa so:
feld [3][3] = {{1,2,3},{4,5,6,},{...},...};
-
Aber so funktioniert das nicht ... das ist mein Problem. Ob ich versehentlich ein lokales erzeugt habe ?!
-
shaun1981 schrieb:
Aber so funktioniert das nicht ... das ist mein Problem. Ob ich versehentlich ein lokales erzeugt habe ?!
probier mal dies:
int main(void) { int feld[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; // <-- initialisierung int s; for (s=0; s<9; s++) printf ("%d ", ((int*)feld)[s]); puts(""); // spaeter gehen nur noch zuweisungen feld[0][0] = 666; feld[1][1] = 777; feld[2][2] = 888; // usw... for (s=0; s<9; s++) printf ("%d ", ((int*)feld)[s]); puts(""); }
-
Das funktioniert ...
Merke: Hinterher gehen nur noch zuweisungen :)! Danke dir ...