gpt4 book ai didi

ios - 分配 NSInteger*

转载 作者:行者123 更新时间:2023-11-29 03:01:27 29 4
gpt4 key购买 nike

我确定我遗漏了一些明显的东西,但我想在 Objective C 中创建一个 NSInteger 指针的实例。

-(NSInteger*) getIntegerPointer{
NSInteger refValue = 0;
NSInteger* theReturn = &refValue;
return theReturn;
}

当我调用此函数时,theReturn 为 nil,但在带有调试器的函数内有效。

有什么建议吗?我不想将 theReturn 更改为 NSInteger。

最佳答案

refValue 变量是一个局部变量,这意味着当 -getIntegerPointer 方法执行时,它会在栈上。一旦该方法返回,该变量就会消失(从堆栈中弹出),因此它的地址不再有意义。

如果你想返回一个有效的指针,你必须为被指向的东西分配内存,像这样:

-(NSInteger*) getIntegerPointer{
NSInteger refValue = 0;
NSInteger* theReturn = malloc (sizeof(NSInteger));
*theReturn = refValue;
return theReturn;
}

关于ios - 分配 NSInteger*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23260116/

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