Zugriffsverletzung?
-
Hallo,
hab in einer Klasse folgende public enum definiert:
enum BoardFieldType { NO_FIGURE_, XFIGURE_, YFIGURE_, };
und folgendes private Array
BoardFieldType game_board_[20][20];
Und dann wollte ich in der Klasse den Array einen FieldType zuweisen und zwar so:
game_board_[0][0]= NO_FIGURE_;
Es passiert bei dieser Zuweisung eine Zugriffsverletzung! Aber warum? Stehe derzeit etwas auf der Leitung, hoffe ihr könnt mir weiterhelfen!
mfg
-
gib mal bitte den Code, den du hast, und zwar ein vollständiges möglichst gekürztes Beispiel.
-
Header-Datei:
class Board { public: Board(); virtual ~Board(); enum BoardFieldType { NO_FIGURE_, XFIGURE_, YFIGURE_ }; void makeGameBoard(); private: BoardFieldType game_board_[20][20]; }
cpp-Datei:
#include "board.h" void Board::makeGameBoard() { game_board_[0][0] = NO_FIGURE_; }
So hier der vollständige gekürzte Beispiel
-
Nach Hinzufügen eines Semikolons und einer main-Methode, konnte Ich Dein Programm kompilieren und erfolgreich ausführen.
Allerdings kann ich kein Board-Objekt anlegen, da die Definitionen von Konstruktor und Destruktor fehlen.
-
Das ist noch nicht vollständig, da fehlt noch die main Methode. So sieht es immer noch korrekt aus...Wahrscheinlich geht irgendetwas mit deiner Instanz von Board schief.
-
Der this Zeiger der Board Instanz zeigt auf Speicher, der nicht dir gehoert. f'`8k
AutocogitoGruß, TGGC (Was Gamestar sagt...)
-
Jep das wars thx!