Hallo,
ich habe ein sehr mysteriöses Problem.
Kurzfassung:
Ergänze ich eine Wertzuweisung zu einer Variable des Typs double bekomme
ich den Fehler CXX0017 bei einem char Array.
Der Quelltext befindet sich in der unteren Funktion:
1 | size_t Verbindung::WriteMemoryCallback_chunked(void *buffer, size_t size, size_t nmemb, void *data)
|
2 | {
|
3 | //Quelltext. Hier nicht aufgeführt, da über 500 Zeilen lang.
|
4 | }
|
Kurze Funktionsbeschreibung:
Ich bekomme ein Datenpaket gesendet.
Überprüfe, ob im Datenpaket für mich interessante Informationen
enthalten sind.
Wandel einen String in Binärdaten um.
Öffne ich eine Datei probeweise.
Wenn die Datei vorhanden ist werden die Daten ergänzt und ggf. werden
interpolierte Daten zwischen den alten und den neuen Werte ergänzt.
Das ganze hat schon funktioniert.
Das Problem tritt bei einem Optimierung auf.
Problemstellung:
Ich erstelle wie unten gezeigt einen Pointer auf ein char-array.
1 | char *Speicherpfad = NULL;
|
Wenn ich an dieser Stelle debugge kann ich nachdem die Intiallisierung
durchgeführt worden ist normalerweise den Inhalt NULL sehen.
Wenn ich irgendwo innerhalb meiner Funktion jedoch einer Variable des
Typs double einen Wert zuweise z.B. so:
1 | double Test; //Funktioniert noch
|
2 | Test = 0; //Führt zu fehler
|
bekomme ich die Fehlermeldung "CXX0017: Fehler: Symbol "Speicherpfad"
nicht gefunden".
Zusätzlich treten entliche weitere Fehler auf, die ich noch nicht weiter
untersucht habe.
Variablen innerhalb einer schleife werden nicht mehr erstellt.
Stattdessen behalten die Varablen auserhalb (mit dem selben Namen) der
Schleife ihre Gültigkeit.
Hat jemand eine Idee? Woran das liegen könnte?