Ich habe den folgenden Code:Debuggen seg Fehler durch Pufferüberlauf verursacht
if (destIndex < destLen && srcIndex < srcLen)
dest[destIndex++] = src[srcIndex++];
Dieser Code läuft gut.
Wenn ich das If entferne, stürzt der Code ab.
Wenn ich dann den folgenden Code ausführen
if (destIndex < destLen && srcIndex < srcLen)
dest[destIndex++] = src[srcIndex++];
else
fprintf(stderr, "Buffer Overrun\n");
Dann ist dieses ich nie den Ausdruck „Pufferüberlauf“
SO, wie zu debuggen?
Der seg Fehler tritt nur mit Optimierungen auf (keine Debug-Modus) gedreht irgendwo
Sie haben UB irgendwo. Viel Glück ... –
Ein [MCVE] (http://stackoverflow.com/help/mcve) anzeigen. Das Problem liegt irgendwo im Code, den du nicht angezeigt hast. –
@Jacko 'destIndex' wird immer> =' destLen' und/oder 'srcIndex' wird immer> =' srcLen' irgendwo, irgendwie ... (vorausgesetzt, 'destLen' und' srcLen' entsprechen tatsächlich der Anzahl der Elemente in 'dest []' und 'src []') – yano