gpt4 book ai didi

iphone - Objective-c 指针

转载 作者:行者123 更新时间:2023-12-03 20:23:19 26 4
gpt4 key购买 nike

我不知道如何删除指针而不是对象,例如:我有一些课:

@interface model : NSObject {
NSMutableArray *tab;
}

当我这样做时:

model1 = [[model alloc]init];
NSMutableArray * tab2 = [model1 tab];
...
some operations
...

我只想删除指向我的选项卡的指针,即 *tab2,但是当我释放 tab2 时,选项卡也会释放。在 C++ 中,当我清除时,我会这样做:

int a =10;
*w = &a;

当我删除指针时

delete w;

并且变量 a 仍在内存中,这没关系。我应该在 obj-c 中做什么来只删除一个指针?

最佳答案

在您使用 Objective-C 的情况下,没有理由删除指针。就让它超出范围吧。您没有分配任何新对象。您没有制作选项卡的副本。你没有保留它。您只是创建另一个指向原始选项卡对象的指针。如果您愿意,可以设置 tab2 = nil 但无论哪种方式都并不重要。

在你的第二个 C++ 示例中,我不确定,但你可能会陷入未定义的行为,因为你给出的代码示例实际上适用于你测试的编译器!删除不是使用 new 创建的指针是无效的 C++。

关于iphone - Objective-c 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540601/

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