Dringend: Strings kopieren(in Objekt)



  • Mein Problem sieht so aus: Ich möchte ein Programm schreiben, das wie unten abgebildet den String Text in ein Objekt schreibt, und diesen dann nach übergabe des Pointers von einer Funkion aus auslesen.

    Situation: es kommt manchmel(!) Systemabstürzen an unterschiedlichen(!) Stellen im Rest der Funktion "Prozedur"(nicht abgebildet, aber korrekt) 😞

    Warum passiert das, bzw, wie kann ich den String richtig übergeben

    //// Anfang Code
    class Cl_Zelle
    {
    public:
    char *Text[100];
    Cl_Zelle *vorher;
    };

    void Prozedur(Cl_Zelle *vorher,Cl_Zelle *Zelle);

    void main(void)
    {
    char *Text[100];
    *Text = "Hallo\0";
    Cl_Zelle *Formel = new(Cl_Zelle);
    strcpy(Formel->Text[0] , *Text);
    cout <<"Formel(main): "<< Formel->Text[0]<<"\n";
    Prozedur(0x0,Formel);
    }

    void Prozedur(Cl_Zelle *vorher,Cl_Zelle *Formel)
    {
    char *Text[100];
    *Formel->vorher = *vorher;
    *Text = Formel->Text[0]; // zwei Möglichkeiten
    // strcpy(*Text, Formel->Text[0]); // macht bei beien Probleme
    }
    ////// ENDE CODE



  • Aua. Lies dir unbedingt nochmal was über Zeiger an und mach ein paar einfache Übungsprogramme dazu, du hast noch gravierende Lücken im Verständnis:

    ein C-String ist ein char-Array:

    char string[100];

    Deine Variable Text (char *Text[100]) ist dagegen ein Array von Zeigern auf char!

    Weiter: Du übergibst den Wert 0 als Wert des Zeigers vorher an die Prozedur, und in der Prozedur dereferenzierst du den Zeiger über den *-Operator. Eigentlich müßte es da schon abstürzen.

    Der Rest sind Folgefehler.


Anmelden zum Antworten