![]() |
Anzeige:
|
|
|||||||
| C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Ist zwar eine Hausaufgabe, aber ich habe eigentlich nur mit einem Teil seit Stunden Probleme. Er knallt mir mein Array wohl über die Ränder zu und ich steige nicht dahinter.
Die Hausaufgabe ist zwar schon fertig und lauffähig, aber ich wills in freiwilliger Eigeninitiative in Klassen umwandeln. ich poste mal nur die dafür relevanten Daten, ich hoffe, dass mir da jemand einen guten Tipp geben kann?: main.cpp: #include "Labyrinth.h" #include <iostream> using namespace std; Labyrinth lab; void main() { lab.insert(".............."); lab.insert(".############."); lab.insert(".# # #."); lab.insert(".4 # # #### #."); lab.insert(".### # # #."); lab.insert(". ### # ."); lab.insert(".#### # # # #."); lab.insert(".# # # # # #."); lab.insert(".## # # # # #."); lab.insert(".# # #."); lab.insert(".###### ### #."); lab.insert(".# # #."); lab.insert(".######## ###."); lab.insert(".............."); } Labyrinth.h: class Labyrinth { public: Labyrinth(); ~Labyrinth(); void insert (char pieces [14]); private: char matrix [14][14]; int matrixRow; }; Labyrinth.cpp: #include "Labyrinth.h" #include <iostream> using namespace std; Labyrinth::Labyrinth() { cout <<"Labyrinth wird angelegt."; //char matrix [14][14]=0; matrixRow=0; } Labyrinth::~Labyrinth() { } void Labyrinth::insert(char p [14]) { strcpy (matrix[matrixRow],p); matrixRow=matrixRow+1; } |
|
|
|
|
#2 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
|
so spontan fällt mir folgendes auf:
//char matrix [14][14]=0; matrixRow=0; dieses Auskommentieren ist nicht gut, generell sollte man alle Variabeln auf irgendeinen definierten Wert setzen, also z.B. matrix={'\0'}; oder memset(matrix,'\0',sizeof(matrix)); und wenn ich mich nicht verzählt habe: lab.insert(".############."); =>14 Zeichen, das kann nicht funktionieren da strcpy 15 Zeichen schreibt: ".############."+'\0' (abschließendes Null-Zeichen für Zeilenende) also entweder das Feld um 1 Vergrößern, oder strncpy nehmen. Peter |
|
|
|
|
|
#3 (Direktlink) |
|
Gast
Beiträge: n/a
|
hm ja
Vielen Dank! Irgendwann werde ich auch mal ein großer mächtiger Programmierer René |
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|