new/delete操作符不匹配错误有多严重?

2024-05-16

我在我们的代码库中发现了经典的 new/delete 不匹配错误,如下所示:

char *foo = new char[10];

// do something

delete foo; // instead of delete[] foo;

这到底有多严重?它会导致内存泄漏或错误吗?后果是什么。我们有一些内存问题,但这似乎还没有严重到足以解释我们所有的症状(堆损坏等)

编辑:为了清楚起见,提出了额外的问题
它只是释放数组的第一个成员吗?或者
它会使系统失去对阵列的跟踪吗?或者
损坏内存有什么办法吗?


这是严重的未定义行为(它可以工作,它可以崩溃,它可以做其他事情)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

new/delete操作符不匹配错误有多严重? 的相关文章

随机推荐