PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] Globales Array re-initialisieren


WhiteVelvet
2005-07-17, 14:01:48
Ich habe in meinem kleinen Spiel eine Klasse, die das Spielfeld verwaltet. Im Kopf wird dabei ein globaler Array angelegt mit 1650 Elementen. Das kann ich anscheinend nur hier machen, sonst hätte ich eine Methode geschrieben, die dem Array diese Werte übergibt (ansonsten kommt die Fehlermeldung, dass das "{" bei "arr[]={0,0,0,0,0,...}" zuviel sei...).
Jetzt will ich für die zweite Spielrunde den kompletten Array reinitialisieren, aber wie kann ich das machen, wenn der Array global im Kopf ist und keine Methode da ist?

Coda
2005-07-17, 14:50:17
Die Initialisierung auf diese Art ist generell nur bei der Instanzierung möglich. Leg einfach ein zweites Array mit der Initialisierung an und kopier es bei jedem Rundenbeginn auf das globale Array (memcpy).

Neomi
2005-07-17, 14:52:41
Einfach per Schleife durchlaufen und jedem Arrayaelement seinen Wert zuweisen. Falls es Nullen sein sollen und der Typ das erlaubt, kannst du auch einfach den Speicher als einen Block überschreiben (memset).

Coda
2005-07-17, 15:00:22
Schleife? Das ist dann auch nur ein memcpy ;)

Neomi
2005-07-17, 16:30:35
Schleife? Das ist dann auch nur ein memcpy ;)

Nur, wenn sie 1:1 aus einem anderen Array kompiert. :D

Und ich schwöre, deine Antwort war eben noch nicht da, als ich meine schrieb. Das Alter... die Knochen... bin eben nicht mehr der schnellste. Die Ausrede gilt im Zweifelsfall übrigens für alles, was bis zu einer halben Stunde vor meinen Postings passiert. ;)

maximAL
2005-07-17, 19:03:57
und wieso muss das jetzt global sein?...