TicTacToe - Konsolenanwendung - weiteres Fenster öffnen?
-
Hast du in einer Datei zwei Variablen mit gleichem Namen, eine global außerhalb der Funktion xyz und die andere lokal innerhalb xyz: In der Funktion xyz wird die lokale bearbeitet, die globale bleibt unverändert.
-
Das ist mir schon bekannt. Nur wie weise ich dem globalen Array nun die neuen Werte zu. Scheine ein Brett vor dem Kopf zu haben - eben weil mir nicht einleuchtet - warum die Werte beim Array FELD geändert werden. Beide sind doch global.
-
Das ist mir schon bekannt. Nur wie weise ich dem globalen Array nun die neuen Werte zu.
Du benennst einfach das lokale um, sodass es das globale nicht mehr maskiert.
Psychologie ist das Problem - für wessen Lösung sie sich hällt
Wenn schon zitieren, dann bitte richtig:
Die Fackel, 15. Jg., Nr. 376-377 vom 30.5.1913, S. 21 schrieb:
Psychoanalyse ist jene Geisteskrankheit, für deren Therapie sie sich hält.
-
bgdnoy schrieb:
Das ist mir schon bekannt. Nur wie weise ich dem globalen Array nun die neuen Werte zu.
Du benennst einfach das lokale um, sodass es das globale nicht mehr maskiert.
Psychologie ist das Problem - für wessen Lösung sie sich hällt
Wenn schon zitieren, dann bitte richtig:
Die Fackel, 15. Jg., Nr. 376-377 vom 30.5.1913, S. 21 schrieb:
Psychoanalyse ist jene Geisteskrankheit, für deren Therapie sie sich hält.
Ein indirektes Zitat Ohne Quellenangaben geht schon in Ordnung - denke ich.
-
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 ...