标题
gcc 有一个严重 bug ,如果什么都不返回函数的返回值是随机的会引起调试器都无法显示的异常!
clq
浏览(460) +
2021-11-14 19:40:41 发表
编辑
关键字:
[2021-11-14 19:42:30 最后更新]
例如下面的函数,没有 return 语句居然也是可以通过编译的。但在运行时会引起严重的错误。
lstring * Functions_GetSaveValue(const char * key, mempool * mem)
{
//return NULL; //gcc 有一个严重 bug ,如果什么都不返回。默认的返回值将是随机的,会引起调试器都无法显示的异常!
}//
当这样调用时,
lstring * car_set_cm = Functions_GetSaveValue("car_set_cm", mem);
car_set_cm 中的值就会指向不确定是内存(并不是 NULL)导致异常,而因为其值不是 NULL ,调试器甚至提示不了在哪里出错了!
clq
2021-11-14 19:42:30 发表
编辑
我测试过了,在多个版本的 gcc 中都有这个问题。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.