Segmentation Fault beim schreiben eines Arrays (lesen geht)
-
Hallo.
Ich beschäftige mich seit einiger Zeit mit C++, bin jedoch nun auf ein Problem gestoßen, dass sich vollkommen meinem Verständnis entzieht.
Habe bereits gegooglt und in einem anderen Forum nachgefragt, aber beides ohne Erfolg.Es dreht sich um folgendes:
Für die Schule schreibe ich derzeit an einem kleinen Klienten für ein Spiel.
Da ich dabei des öfteren eine Variable short mapField[11][11] benötige, habe ich sie als Typ definiert.typedef short tMapField[11][11];Nun binde ich den Typ innerhalb eines Klasse ein.
class cMap { private: tMapField mapField; public: bool SetMap(string mapInformation); };Nun versuche ich in der Funktion SetMap auf das Array zuzugreifen.
bool cMap::SetMap(string mapInformation) { cout << "Test: " << this->mapField[3][3] << endl; this->mapField[3][3] = 12; return true; }Das Lesen funktioniert soweit auch ganz gut, aber wenn ich versuche in das Array zu schreiben, bekommen ich einen Segmentation Fault Fehler.
Test: -5376
Segmentation fault (core dumped)Da ich in C++ noch nicht so wirklich gut bin, kann ich mir den Fehler leider nicht erklären.
Kann mir hier bitte jemand helfen und mir erklären, was ich falsch gemacht habe?
Zur Information: Ich benutze Ubuntu Linux und als IDE KDevelop 3.5.0.
-
Hallo
Das hat mit der Variable mapField oder gar deren Typ nichts zu tun (Dein Codeauszug beinhaltet keinen Fehler). Sondern vermutlich rufst du die Methode SetMap für eine ungültige Instanz von cMap auf.
Und übrigens brauchst du das this-> nicht.
bis bald
akari
-
Hm, habe noch mal allen Code durchgeschaut und siehe da, ich hatte vergessen eine Referenz zu setzen ...
Vielen, vielen Dank für die Hilfe, echt super Forum hier.