Probleme mit Zeiger



  • nabend

    das ist relativ wichtig für mich, darum bitte ich euch es evt selbst zu kompilieren

    also

    ich habe volgenden zeiger deffiniert:

    char* name[17] = { "Andali", "Beciri","...","usw" };
    
    und möchte den namen 1 ändern mit der zeile
    

    cin >> name[1];

    das Problem ist, wenn ich nun im laufenden Prog eben das mache (den namen eingeben) stürzt es ab und beendet

    danke für die hilfe



  • dein array besteht aus stringliteralen die konstant sind, dh sie dürfen nicht verändert werden. benutze besser die klasse string, dann passiert dir das auch nicht.



  • danke..aber was heisst das im klartext für newbies?

    vieleicht mit beispiel?

    danke



  • das bedeuted, dass

    "Andali"
    

    absolut konstant, also unveränderbar ist. dh du musst den string benutzen:

    #include <string>
    using namespace std;
    string name[17]={ "Andali", "Beciri","...","usw" };
    
    //später im code
    cin >> name[1];
    

    und fertig.



  • Oh Danke ... jetzt is klar



  • Gurrnder schrieb:

    danke..aber was heisst das im klartext für newbies?

    Dass du String Literale immer const definieren solltest, zB

    const char* name[17] = { "Andali", "Beciri","...","usw" };
    

    Dann sagt dir der Compiler schon was Fakt ist.
    Und wie du veränderbare Strings verwenden kannst, weisst du ja jetzt.


Anmelden zum Antworten