Zweidimensionales Array kopieren



  • Hallo,

    ich bin derzeit für die Uni dabei ein Game of Life zu Programmieren, im Prinzip habe ich auch alles, aber das letztendliche Ergebnis passt einfach nicht, wenn die Grenzen des Spielfeldes überschritten werden (mit dem Modulo Operator soll man dann eben auf der anderen Seite des Spielfelder wieder "herein kommen").

    Ich Nutze für das aktualisieren des Spielfeldes 2 array, eines, in dem sich das Spielfeld befindet, und eines, in dem sich eine Kopie des Spielfeldes befindet, bevor der updatevorgang der Zellen begonnen hat.

    Ich glaube, meine Probleme hängen mit den beiden Array zusammen, denn verrückterweise sind beide arrays unterschiedlich, obwohl ich das eine 1:1 in das andere kopiert habe, vielleicht sieht ja jemand von euch einen Fehler...Danke!

    int field[10][10];
    int cache_field[10][10];
    int y;
    int x;
    
    for(y = 0; y < 10; y++){
      			for(x = 0; x < 10; x++){
    				cache_field[y][x] = field[y][x];
      			}
    }
    

    Das müsste mir doch field in cache_field 1:1 kopieren, oder nicht?


  • Mod

    Ja, sollte es. Der Fehler liegt wahrscheinlich woanders (höchstwahrscheinlich über Arraygrenzen hinweg geschreiben) oder der Code entspricht nicht dem, was du wirklich hast.

    Versuch ein Mininmalbeispiel zu deinem Problem zu erstellen. Siehe den dritten Link in meiner Signatur.

    Allgemeine Tipps:
    Statt der vielen Einzelkopien kannst du übrigens einfach alles in einem Rutsch mit memcpy kopieren.

    Noch viel besser: Du lässt das Kopieren ganz sein und wechselst immer hin und her, welches Array gerade aktiv ist.



  • Wie stellst du denn fest, dass die Arrays unterschiedlich sind?


Log in to reply