c - 仅使用 CMake 检测到堆损坏
问题描述
我正在尝试遵循 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,我会收到此错误。
尝试直接使用 GCC,它可以正常工作。
谢谢你。
解决方案
推荐阅读
- azure-active-directory - 支持 Office 365 Enterprise E1 用户的 Azure AD MFA OATH 令牌功能
- javascript - 在 Jest 中编写测试时 Ref 为空
- laravel - 我如何返回多个页面的值.. 在 laravel 中我在下面给出的代码
- javascript - SQL - 如何获取单元格的特定值并将其保存到变量中?
- angular - 为什么我得到属性“地图”未定义
- java - 当整行为空时如何不将数据放入地图中
- c# - 不应为空的 C# 变量引发空引用异常
- oracle - 如何获取必填字段中的数据?
- python - 如何加快对 python 数组的操作?
- vbscript - 计算行数