如果我用非动态分配的指针作为参数调用free()会发生什么?
E.g
some_struct foo;
function(&foo);
void function(some_struct* param){
free(param);
}
谢谢!
答案 0 :(得分:0)
这违反了规则,所以可能发生任何事情。 free()
可能会打印错误消息。程序可能会因分段违规或其他内存访问错误而崩溃。可能会默默忽略该错误。或者错误可能导致malloc / free堆损坏,以至于在稍后调用malloc或free时可能会发生错误或崩溃。