我在我们的代码库中发现了经典的新建/删除不匹配错误,如下所示:
char *foo = new char[10];
// do something
delete foo; // instead of delete[] foo;
这有多严重?它会导致内存泄漏或错误吗?有什么后果。我们有一些内存问题,但这似乎不足以解释我们所有的症状(堆损坏等)
编辑:为了清楚起见额外的问题
它只是释放数组的第一个成员吗?或
它是否会使系统失去对阵列的跟踪?或
内存损坏有什么办法?
最佳答案
这是严重的未定义行为(它可以工作,它可能崩溃,它可以做其他事情)。
关于c++ - 新/删除运算符不匹配错误有多严重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9238731/