Probleme bei OnDialogResponse. (Variable bereits vorher definiert)

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo, ich habe ein merkwürdiges Problem wo ich selber nicht auf die Ursache komme.
    Ich arbeite in OnDialogResponse mit Switch/Case jetzt ist es so das ich in fast jeder Case eigentlich die selbe Variable oben neu Definiere.
    Also ich habe "tempstring" als Beispiel in mehreren Case unter OnDialogResponse jeweils oben definiert mit new tempstring.. .
    Das ging auch ohne Probleme bis zu einem bestimmten Case ab danach meckert er das die new tempstring auf einmal bereits definiert ist obwohl es zuvor bereits auch schon so ist.
    Was mich daraus schließen lässt das es etwas mit dem Inhalt der Case davor zutun hat.


    Nur finde ich hier keinen wirklichen Fehler.
    Hier der etwas längere Ausschnitt der Case davor:

    als PWN Code:



    Als Quellcode:


    Als Textdatei im Anhang: CaseProblem.txt


    (Ich habe es aufgrund der Größe und Formatierung in mehreren "Optionen" gemacht)


    Ab dieser Case meckert er danach das tempstring, stringlang auf einmal bereits definiert ist.
    Davor habe ich das bereits genauso ganz oben Definiert wo nicht gemeckert wird.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

    Einmal editiert, zuletzt von Dog ()

  • Nein, dann hätte er ja bei den Case davor auch schon gemeckert.
    Aber er macht das erst ab dieser Case.


    Ich habe ja bei den Case davor auch bereits new tempstring benutzt.
    Nur das galt halt immer nur für die Case.


    Nur bei dieser ist das irgendwie Übergreifend.
    Ich hatte erst gedacht ob ich irgendwo eine Klammer vergessen habe, aber sind alle geschlossen.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • Der Compiler hat bei lokalen Variablen hin und wieder mal Aussetzer. In irgendeinem Thread habe ich das auch mal an einem Beispiel nachgestellt, da war so ein Fehler ebenfalls vorhanden.


    Abgesehen von der Warnung wäre es ohnehin besser, wenn du
    new tempstring[512],stringlang[1024],sSplit[2][64];
    vor dem switch deklarierst, und nicht in jedem case extra.


    Zu viele Lokale Variablen blähen den Code nur auf, und wenn du das gleiche Array mehrmals nutzt, dann ist es besser, es eine Ebene höher zu deklarieren.
    Versuche es so.

  • @Jeffry:
    Kann man ein String klären sprich das er wieder leer ist ?
    Da ich mit strcat ja immer etwas in den stringlang schreibe.
    Und wenn ich das nicht vorher leere, habe ich dann in der anderen Case sonst den alten Text noch.
    Das ist halt der Grund auch warum ich das dort Überall immer neu Definiere.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • Vielen Dank, dann werde ich das ganze überall Umschreiben, sodass nur noch einmal oben beides definiert ist und den String jeweils mit der Funktion vorher Leeren.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi