|
|
1
3
在C++中你可以做
如果希望将字符串放在堆中,则在调用者处理完字符串后,删除(通过在指针上调用delete)调用者中的字符串。但是在你发布的第一个版本中,我看没有问题。它是一个堆栈变量,但当然它在调用者中仍然有效,因为它是返回值。 |
|
|
2
3
它不会丢失它的值,因为它将被复制(尽管编译器可以将复制作为优化省略)。 所以不用担心,这在C++中是很好的。 您还可以返回指向动态分配内存的指针,但这会增加使用难度,因为客户端必须显式释放内存。一般来说,这不是一个好的解决方案,处理指向动态内存的原始指针是导致内存泄漏的首要原因,清理此类代码非常糟糕。
更好的方法是使用智能指针(例如。
|
|
|
3
1
你的
|
|
|
4
1
您的Obj-C代码与编码样式和内存管理规则相违背。它应该看起来像:
|
|
AstralHex · 矩阵乘法代码工作不正常 11 月前 |
|
|
Giogre · 为包含许多数值字段的简单“struct”重载比较运算符 11 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 11 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 11 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 12 月前 |