Я получаю недопустимую ошибку памяти в следующем коде:
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 ДЛИНА: 2
* glibc обнаружен * ./auto: realloc(): неверный следующий размер: 0x08cd72e0 *** ======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6(+0x6b591)[0x6dd591]
Здесь следует отметить, что Fine 7
никогда не печатается. и недопустимая ошибка следующего размера при каждом запуске находится в одном и том же месте.
Найдено этого релевантного
buffer
перед вызовомrealloc
? - person Brett Hale   schedule 09.12.2011