Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Segmentation Fault

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
15.11.2004, 14:59 Uhr
~FrankBooth
Gast



C++:
#include <iostream>
#include <iomanip>
#include <string>
#include <new>

using namespace std;

class Tele
{

        string name;                                                                //Schl’sselwert    
        string nummer;
                                                                                
    public:        
        Tele (string na,string nu);                                    //Konstruktor
        /*Operator ’berladungen*********************************/
        bool operator < (Tele Z){return (name < Z.name);}
        bool operator > (Tele Z){return (name > Z.name);}
        bool operator == (Tele Z){return (name == Z.name);}
        bool operator <= (Tele Z){return (name <= Z.name);}
        bool operator >= (Tele Z){return (name >= Z.name);}
        /*******************************************************/
        /*Get Funktionen****************************************/
        string getname(){return name;}
        string getnummer(){return nummer;}
        /*******************************************************/
        /*Set Funktion******************************************/
        void setinhalt (string na,string nu){name=na;nummer=nu;}
        /*******************************************************/
        
};

class Knoten
{
        Tele  **daten;
        int t;
        int nr;                                                                        //Anzahl der Datensaetze
        Knoten ** suc;
        
    public:
        Knoten ();
        Knoten (int grad);
        int getnr(){return nr;}
        bool istblatt ();
        bool voll ();
        void setTele (string,string);
};

/*class BBaum
{
        Knoten K;
        int t;                                                                                //max Grad
    public:
        BBaum ();
        BBaum einfuegen(string na, string nu);
        void Spalte_Wurzel ();                                                //???
        void Spalte_Nachfolger ();                                        //???
    
    
    */

/*Tele************************************************************/
//Konstruktor
Tele::Tele(string na="hallo",string nu="123")
{
    setinhalt (na,nu);
}

/*Knoten**********************************************************/    
Knoten::Knoten (int grad)
{    
    t=grad;
      nr=0;
  
    daten=new Tele*[2*t-1];
    for(int i=0; i< ((2*t)-1); i++)
    {
        daten[i]=NULL;
    }
    
    suc= new Knoten*[2*t];
    for(int i=0; i<(2*t); i++)
    {
        suc[i]=NULL;
    }
}
bool Knoten::istblatt ()
{
    for(int i=0; i<2*t; i++)
    {
      if(suc[i] != 0) return false;
  }    
    return true;
}

bool Knoten::voll ()
{
    if(nr == ((2*t)-1)) return true;        
    else return false;    
}

void Knoten::setTele(string na, string nu)
{
    daten[nr]->setinhalt(na,nu);
    nr++;
}



C++:
int main ()
{

Knoten K (5);
if (K.istblatt())cout << "Blatt" <<endl;
else cout << "kein Blatt"<<endl;
K.setTele ("Hans","23123");  // <------- hier segmentation fault
//K.setTele ("Hans","23123");

Tele    T("Meyer","23456");
Tele    Z("Alah","2135545");

    cout<<T.getname()<<T.getnummer()<<endl;
    cout<<Z.getname()<<Z.getnummer()<<endl;
...




Bearbeitung von Pablo:

Benutze CPP TAGS selber.


Dieser Post wurde am 15.11.2004 um 17:25 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.11.2004, 15:12 Uhr
(un)wissender
Niveauwart


Aha, danke für die Information!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.11.2004, 15:22 Uhr
~FrankBooth
Gast


ja sorry!!!!!
Also, ich hab ein kleine Problem. Leider bekomme ichbeim schreiben in mein Array immer einen segmentation fault. Vielleicht kann mir einer von euch helfen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.11.2004, 17:26 Uhr
Pablo
Supertux
(Operator)


Ein bisschen mehr infos bitte, wo genau, bis wo wird es ausgeführt, was willst du machen/was soll das Programm machen? Wir sind leider keine Zauberer und können sowas nicht sehen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.11.2004, 17:43 Uhr
0xdeadbeef
Gott
(Operator)



C++:
void Knoten::setTele(string na, string nu)
{
    daten[nr] = new Tele(na, nu); // Hier auch ein Objekt instanziieren
    nr++;
}


Oh, und vergiss nachher bloß nicht, den Kram wieder freizugeben.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.11.2004, 17:44 Uhr
FrankBooth



Sorry Leute,

hab es von nem Kumpel erklärt bekommen. Kann gelöscht werden. Ich werde mich beim nächsten mal etwas genauer ausdrücken.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.11.2004, 17:49 Uhr
FrankBooth



Danke 0xdeadbeef!!

Deine Lösung ist viel schöner
Hab vielen Dank!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: