Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » [C] -> Pointer Problem ("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
12.02.2005, 01:23 Uhr
~Fox
Gast


Hi!
Also ich habe das Hier

C++:
int queque_add (char *data)
{
info.queque [info.quequec] = strdup (data);
info.quequec++;
}



C++:
struct info
{
char **queque;
int quequec;
}




Zitat:
Segmentation fault


Ich habe keine Ahnung, warum das nicht funktioniert, denn meiner Meinung nach ist alles korrekt und der Compiler zeigt auch keine Warnings an.

Danke für eure Hilfe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.02.2005, 03:28 Uhr
enno-tyrant
Frag nicht!


ohne es jetzt getestet zu haben, müßte es nicht so sein:


Code:
info::queque [info::quequec] = strdup (data);
info::quequec++;



oder so:


Code:
//struct
struct info
{
    char **queque;
    int quequec;
}dieInfo;

//funktion
int queque_add (char *data)
{
    dieInfo.queque [dieInfo.quequec] = strdup (data);
    dieInfo.quequec++;
};


--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.02.2005, 10:13 Uhr
~Fox
Gast


Sorry hatte vergessen das hier zu posten:

C++:
struct info info;


Das ist aber nicht das Problem.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.02.2005, 11:06 Uhr
enno-tyrant
Frag nicht!


probier es mal damit:


Code:
struct info
{
  static char **character;
  static int integer;
}info;

char *character_add (char *data)
{
  info.character[info.integer];// = strdup (data);
  info.integer+1;
};



das ' = strdup (data);' mußte ich auskommentieren da es nur für fehler sorgt...compiliere es und sage ob geholfen hat...sonst erkläre mal genau was das programm macht, sieht so aus als möchtest du ein dynamisches array mit einzelnen buchstaben füllen.
--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.02.2005, 17:11 Uhr
~Fox
Gast


Das hilft auch nichts (warum sollen Variablen nicht queque genannt werden?). Naja, ich habe einen String "data" und ein Array namens "info.queque" und einen array element counter: "info.quequec". Nun will ich das info.queque ein neues element mit dem Inhalt von data bekommt.
Dieser Post wurde am 12.02.2005 um 17:12 Uhr von Fox editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.02.2005, 21:30 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von Fox:


C++:
int queque_add (char *data)
{
info.queque [info.quequec] = strdup (data);
info.quequec++;
}





Naja, wer besorgt denn Speicher für info.queque? - Müsste es nicht eher heissen:

C++:
int queque_add (char *data) {
    char* tmp = (char**)realloc(info.queque, sizeof(char*)*(info.quequec+1));
    if (tmp==NULL) {
         /* Fehler, entsprechender Rückgabewert. */
    }
    else {
         info.queque = tmp;
         info.queque [info.quequec] = strdup (data);
         info.quequec++;
    }
    /* Was willst Du eigentlich zurückgeben? */
}

--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
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: