我在以下代码中收到无效的内存错误:
printf(" %s\n","FINE 5");
printf("%s LENGTH IS: %d\n","FINE 6",strlen(": "));
buffer = (char *)realloc(buffer, strlen(buffer)* sizeof(char) + (strlen(": ")+1)* sizeof(char));
printf(" %s\n","FINE 7");
strcat(buffer, ": \0");
输出:
FINE 5
FINE 6 LENGTH IS: 2
* glibc detected * ./auto: realloc(): invalid next size: 0x08cd72e0 *** ======= Backtrace: ========= /lib/tls /i686/cmov/libc.so.6(+0x6b591)[0x6dd591]
这里要注意的一点Fine 7
是从不打印。每次运行时无效的下一个大小错误都在同一位置。
找到这个相关的