Zitat von
d3g:
Ist das Problem mit anderen Compilern / anderen GCC-Versionen reproduzierbar?
Das Problem ist sogar mit dem Delphi-Compiler reproduzierbar. Auch der MSVC++ und BCB Compiler haben das Problem.
Dieses Problem nennt sich
logischer Fehler.
Ein Null-terminierter String (char*) nennt sich Null-terminiert, weil er bei \0 endet. Ist kein \0 vorhanden, wird einfach bis zum nächsten \0 weitergearbeitet. Dein Fehler beginnt schon beim reservieren des Speichers. Das \0 braucht auch noch Platz. Zudem solltest du das \0 in res dann auch noch definitiv setzen, da man ja nie wissen kann ob bei der Chance 1:255 auch die 0 herauskommt.