Hi,
der Code:
char buf128[128];
memset(&buf128, 0, sizeof(buf128));
Das Problem:
buf128 hat nach dem memset nicht überall 0 stehen, sondern in den ersten 4 Stellen etwas anderes (also "Speicherüberreste").
Wenn ich die Code-Optimierung ausschalte (Release), so funktioniert memset - mit Optimierung geht es schief.
Jemand eine Idee???
PS: Ich habe ein neues Projekt angelegt und dieses Problem mal dort importiert - dort funktioniet die Funktion - ich komm nicht mehr weiter :-(
(Visual Studio 2005 / Windows 2000 SP4)
MfG. PingOfDeath
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Richtig: memset (buf128, 0, sizeof(buf128));
buf128 ist bereits die Adresse deines Puffers. &buf128 ist die Adresse deiner Variablen (also die Adresse der Adresse des Puffers).
Claus
nebenher gesagt würde ich über sizeof(char) gehen um portabel zu bleiben.
Danke für Eure Antworten.
Der Fehler lag ganz woanders - der Buffer wurde zu weit beschrieben - in einer Unterfunktion hatte ich nicht bedacht, dass Char-Arrays (eigentlich ja Strings) auch eine 0-Terminierung haben ......
Gruß, PingOfDeath