[C/C++] Segmentation fault

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von t-low, 15. September 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. September 2008
    Segmentation fault

    ich habe folgenden code:
    Code:
    
    
    #include <cstdio>
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    class user {
    
    
    private:
    char name[20];
    
    
    
    public:
    user(void) {
    char dname[20];
    
    
    cout << "\n Wie heisst du?" << endl;
    cin >> dname;
    
    strncpy(name, dname, 19);
    
    FILE *datei;
    name[20] = '\0';
    datei = fopen("data/info", "a");
    fprintf(datei, " %s ", name);
    fclose(datei);
    };
    
    void ausgeben(void);
    
    
    
    
    
    
    
    
    };
    
    
    
    
    int main(void) {
    
    user spieler1;
    spieler1.ausgeben();
    
    
    
    
    
    
    
    return 0;
    };
    
    void user::ausgeben (void) {
    cout << "\nname: " << name;
    
    
    
    
    
    };
    
    ich kann das mit g++ unter linux kompilieren, doch wenn ich es ausführe kommt aus i-einem grund immer "Segmentation fault"...
    woran liegt das und wie kann ich das verhindern...
     
  2. 15. September 2008
    AW: Segmentation fault

    Ich meine ich hätte mal von nem Kollegen sowas in der Art gehört, der hatte wohl nen Problem mit nem Null-Pointer...
    Auf jeden fall hört es sich nach nem Speicher Problem oder ne Zugriffverletzung im Speicher an...

    Mir ist bei deinem Codefragment allerdings nichts ungewöhnliches aufgefallen....

    Nur ne frage... Wieso ist bei fopen() bei dem Pfad zur Datei keine Dateiendung?
    Vielleicht ist das ja bereits der Grund....


    Edit// Schau mal hier, habe ich gerade gefunden: Segmentation fault - Wikipedia, the free encyclopedia
     
  3. 16. September 2008
    AW: Segmentation fault

    Hilfe. Kopfschmerzen.
    Rücke deinen Code mal ordentlich ein das nächste mal!

    Deinen Segmention Fault bekommst du an der Stelle z.B, wenn du mehr als
    20 Bytes schreibst:
    cin >> dname;

    Hier nochmal eine Stelle:
    name[20] = '\0';

    Du schreibst gerade das 21. Byte, dein letzter Index mit 20 Bytes ist 19.
     
  4. 19. September 2008
    AW: Segmentation fault

    stimmt ihr habt recht danke, bw's gibt's sofort...
    die dateiendung fehlt, weil ich einfach ne datei OHNE endung erstellt hab...
    ~closed~
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.