![]() |
1
19
您需要阅读文档
如果代码没有记录它的行为,那么就没有安全的方法来使用它。 |
![]() |
2
3
你说辞职是什么意思?结束进程?当进程被破坏时,您的堆通常会被破坏。如果您要求操作系统为您做一些事情(如获取文件或窗口句柄),但没有释放它,那么在退出进程后,您将只会获得泄漏的可能性。 此外,返回指针的函数需要很好地记录解除指针目标分配的责任(如果有的话),否则,您不知道是否需要自己删除它,或者您可以意外地删除它(如果您不打算这样做,那将是一场灾难)。 如果函数的文档没有告诉您要做什么,请检查库文档-有时整个库采用相同的策略,而不是在每个函数中记录它。如果你在任何地方都找不到答案,联系作者或者放弃图书馆,因为潜在的错误是不值得的,imho。 根据我的经验,大多数返回指针的函数要么动态分配指针,要么返回基于输入参数的指针。在这种情况下,由于没有参数,我敢打赌它是动态分配的,完成后您应该删除它。但是编程不应该是一个猜测游戏。 |
![]() |
3
0
你自己清理总是一个好习惯,不要以为操作系统会这样做; 当您退出应用程序时,您的IDE或调试器将报告内存泄漏,这是一个很好的更改。 你要做什么?当然,这取决于,但是通常情况下,您必须释放someFunction()分配的内存,并且文档可能会帮助您实现这一点,要么有一个API来释放内存,要么您必须使用free或delete手动释放内存。 马克斯 |
![]() |
4
0
图书馆应该把这个记录下来。 要么在使用后显式删除它,要么调用一些发布方法,以确保对象(以及它指向*的任何其他资源)不会泄漏。 (给出一个选择)除非它是一个巨大的(在内存方面)对象,否则我更喜欢按值返回。或者传递对函数的引用。 |
![]() |
5
0
如果
|
![]() |
6
0
正如其他人注意到的,这取决于在代码中强制执行其所有权假设的功能。有一种方法可以做到这一点 smart pointers :
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |