Я пытаюсь следовать руководствам по buildyourownlisp, но у меня возникла проблема с освобождением памяти, в которой я храню вводимые пользователем данные. Я думал, что совершил ошибку в части реализации lisp, но даже если я удалю все, кроме чтения ввода и попытки освободить память, я получаю ошибку Heap Corruption Detected
, как показано ниже:
char* readline(char* prompt){
fputs(prompt, stdout);
fgets(input_buffer, 2048, stdin);
char* copy = malloc(strlen(input_buffer+1));
strcpy(copy, input_buffer);
copy[strlen(copy)-1] = '\0';
return copy;
}
while (1){
char* input = readline("hello> ");
free(input);
}
Я понял, что получаю эту ошибку, если использую CMake.
Пробовал использовать G CC напрямую, и он работает без проблем.
Спасибо.