簡體   English   中英

線程1:EXC_BAD_ACCESS代碼= 1浮點數*

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM