Bei einem Programm welches ein hierarchisches Menü darstellen soll, verändert mir vermutlich der Befehl printf die Inhalte der einzelnen Pointer, die Teil meiner structs sind (Baum mit Knoten).
Weiss jemand, wie ich dieses Problem loswerde, bzw welche einfachen Alternativen es zu printf gibt. Danke
Hallo // Dies ist eine Begrüssung !!
Da meine Kristalkugel immer noch nicht richtig funktioniert, kann ich dir nur mitteilen, das du da etwas falsch machst !!!
Ich habe auch gerade ein Problem, Ich erhalte die Fehlermeldung „0xC0000005: Access Violation“, was mache ich falsch ???
MfG Peter(TOO)
P.S. Tip: Schreib ein kleines Programm, welches deinen Fehler reproduziert und Poste den Code dann hier.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Um die Empfehlung meines Vorgängers zu befolgen, hier ein paar Gustostückerl aus meinem Programm:
Aufbau des structs im H-file:
typedef struct Knot
{
char Inhalt[20];
struct Knot* Son1;
struct Knot* Son2;
struct Knot* Son3;
struct Knot* Son4;
struct Knot* Son5;
struct Knot* back;
void(*fkt)();
}Knot;
Das Problem tritt bei diesem Befehl auf:
printf(„Sie befinden sich im Menue, bitte waehlen Sie aus:“);
und bei:
strcpy(temp,(act->Inhalt));
printf("%s…%d",temp,i);
beide Male verändert der Befehl printf die Inhalte der einzelnen „Son“ Pointer. Durch debugging bin ich draufgekommen, dass der Aufbau des Baumes vor diesen printf Befehlen stimmt, danach nicht mehr.
Soviel zu meinem Wissensstand.
beide Male verändert der Befehl printf die Inhalte der
einzelnen „Son“ Pointer. Durch debugging bin ich
draufgekommen, dass der Aufbau des Baumes vor diesen printf
Befehlen stimmt, danach nicht mehr.
Das hört sich sehr danach an, dass es bei Deiner Speicherverwaltung ein Problem gibt. Prüfe mal nach, ob Du tatsächlich für Deinen Zeiger genug Speicherplatz zugewiesen hast, bzw. ob Du in Deinen char[20] wirklich nur maximal 19 Zeichen abspeichert.
Marian
Hallo Auch,
Mir gibt „void(*fkt)();“ etwas zu denken.
Eigentlich müsste eine saubere deklaration „void(*fkt)( void );“ lauten.
Wenn du hier aber eine Funktion mit variabler Parameterzahl aufrufst, musst du dich zuerst mit der „va_arg()“ Makro-Gruppe beschäftigen, sonnst gibt es die von dier erwähnten Probleme auf dem Stack.
MfG Peter(TOO)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]