[英]Thread 1:EXC_BAD_ACCESS code = 1 float *
我知道有很多問題要問相同的問題,但是沒有人幫助過我。
我有Object DimensionItemHolder和property:
@property(nonatomic) float * sum;
在遞歸函數中,我有:
DimensionItemHolder * holder = [self getDimensionItemWhitIndex:[dimensionItem.dimItemID shortValue]];
if (holder)
{
NSLog(@"%f , %f , %f , %f , %f : %p", holder.sum[0],holder.sum[1],holder.sum[2],holder.sum[3],holder.sum[4] , holder.sum);
[self.itemOrderdArray removeObject:holder];
[self substractSum:holder.sum];
NSLog(@"%p", holder.sum);
return holder.sum;
}
並在幾次迭代后將xcode拋出
Thread 1: EXC_BAD_ACCESS(code = 1, address 0xc080000c)
在線
NSLog(@"%p", holder.sum);
我認為它必須具有白色功能
[self substractSum:holder.sum];
(如果我發表評論,它將奏效)
功能是:
-(void)substractSum:(float *)subSum{
if (subSum) {
self.sum[0] = self.sum[0] - subSum[0];
self.sum[1] = self.sum[1] - subSum[1];
self.sum[2] = self.sum[2] - subSum[2];
self.sum[3] = self.sum[3] - subSum[3];
self.sum[4] = self.sum[4] - subSum[4];
}
}
我猜您正在使用float *
來享受C指針的特性並執行sum[i]
。 但是在這里,您在ObjectiveC中,使用充滿浮點數的NSArray。
我終於明白了。
這是愚蠢的事情。 我為4個浮點數分配內存,然后問他5個元素的holder [4]。
謝謝大家的幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.