相关疑难解决方法(0)

数组名称是指针吗?

数组的名称是C中的指针吗?如果没有,数组的名称和指针变量之间有什么区别?

c arrays pointers

191
推荐指数
4
解决办法
6万
查看次数

为什么使用'new'导致内存泄漏?

我首先学习了C#,现在我开始使用C++.据我所知,newC++中的operator 与C#中的operator 不相似.

你能解释一下这个示例代码中内存泄漏的原因吗?

class A { ... };
struct B { ... };

A *object1 = new A();
B object2 = *(new B());
Run Code Online (Sandbox Code Playgroud)

c++ pointers memory-leaks c++-faq new-operator

130
推荐指数
9
解决办法
2万
查看次数

习惯性的短寿命局部物体类似于RAII

我遇到了Objective-C的这个片段:

NSNumber *theBalance = 
    [[[NSNumberFormatter alloc] init]
     numberFromString: [textField text]];
Run Code Online (Sandbox Code Playgroud)

这似乎泄漏了NSNumberFormatter.在C++中,我会做两件事之一:

  1. 使用auto(即堆栈)存储NSNumberFormatter
  2. 使用RAII(例如shared_ptr)来管理生命NSNumberFormatter

在Objective-C中,这些选项似乎都不可能.我试过堆栈:

NSNumberFormatter fmt;
Run Code Online (Sandbox Code Playgroud)

但这不编译.据我所知,Objective-C中没有与RAII直接等价的东西.我可能从错误的角度看问题是一个主要的C++程序员,所以:

  1. 在一般情况下,什么是正确的,惯用的(现代的)Objective-C方式处理像NSNumberFormatter这里的对象的生活?我真的必须自己明确地做吗?
  2. 在具体情况下是否有更好的方法来解决实际问题?

iphone memory-management raii objective-c ios

2
推荐指数
1
解决办法
141
查看次数