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.