Я знаю, что есть тонны вопросов с тем же вопросом, но никто мне не помог.Тема 1: EXC_BAD_ACCESS code = 1 float *
У меня есть DimensionItemHolder объектов и имущества:
@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);
Я Figer его, что он должен делать йоту функцию
[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];
}
}
Не могли бы вы показать нам, где вы malloc/освободите массив? Кроме того, попробуйте явно указать свойство как «(неатомное, назначить)», интересно, изменилось бы это. –
Попробуйте выполнить код с включенным NSZombie, который даст вам журнал, на который ссылается выделенный объект. Как включить NSZmobie? проверьте [здесь] (http://stackoverflow.com/questions/2190227/how-do-i-set-up-nszombieenabled-in-xcode-4). – execv
Я malloc его в состоянии init объекта и освободить его на - (void) dealloc –