Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50849, Antworten: 1390
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26615, Antworten: 4194
Gehe zum ersten neuen Beitrag Windows Oberfläche (Schrift,...
Aufrufe: 176, Antworten: 10
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 63, Antworten: 5
Gehe zum ersten neuen Beitrag TabCtrl
Aufrufe: 121, Antworten: 12
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 93, Antworten: 4
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 17, Antworten: 2
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 49, Antworten: 2
Gehe zum ersten neuen Beitrag McAfee AVERT Stinger...
Aufrufe: 13, Antworten: 0
Gehe zum ersten neuen Beitrag Sticky Password 6.0.2...
Aufrufe: 25, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10.01.2006, 14:37   #1 (Direktlink)
theblueone
Gast
 
Beiträge: n/a
Standard Das Array wird stärker beschrieben, als es soll - warum?

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;
}
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 10.01.2006, 14:53   #2 (Direktlink)
Dauergast
 
Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
Standard

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
lastwebpage ist offline   Mit Zitat antworten
Alt 10.01.2006, 15:30   #3 (Direktlink)
Gast
 
Beiträge: n/a
Standard

hm ja

Vielen Dank!

Irgendwann werde ich auch mal ein großer mächtiger Programmierer

René
  Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 05:40 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2