gpt4 book ai didi

c++ - 不正确配对的函数示例

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:02 24 4
gpt4 key购买 nike

从本文档的第 41 页开始:https://www.securecoding.cert.org/confluence/download/attachments/40402999/04+Dynamic+Memory.pdf?version=1&modificationDate=1267372189000

为什么下面的删除不正确?

ip= static_cast<int*>malloc(sizeof(int));
*ip= 12;
. . .
delete ip; // wrong!

最佳答案

您应该调用 free() 来释放使用 malloc() 获取的内存。

delete 运算符仅适用于new

所以,要么

ip= static_cast<int*>malloc(sizeof(int));
*ip= 12;
. . .
free(ip);

ip= new int;
*ip= 12;
. . .
delete ip;
ip = 0;

请注意,在释放已删除的指针后使其无效是个好主意,这样将来任何错误地取消引用它的尝试都将失败并使错误更容易定位。

关于c++ - 不正确配对的函数示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16440472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com