Ок, я, наконец, нашел проблему. Он был внутри функции C (CarbonTuner2), а не objC-методом. Я создавал внутри функции массив того же размера, что и размер файла, поэтому, если размер файла был большим, он создал действительно большой массив, и я предполагаю, что когда я вызывал из него другую функцию, локальные переменные помещались в стек, создал EXC_BAD_ACCESS. То, что я сделал тогда, вместо использования переменной, чтобы объявить размер массива, я прямо поставил номер. Тогда код даже не компилировался. он знал. Ошибка была что-то вроде: Размер массива слишком большой. Я думаю, что работающая 20 + часов подряд не хороша XD. Но я определенно буду смотреть на инструменты, кроме пошагового debuggin, чтобы понять их. Спасибо за вашу помощь. Вот код. Если разделить на 2 gFileByteCount вы не получите сообщение об ошибке больше:Вызов функций изнутри функции (float * VeryBigArray, long SizeofArray) из метода objC завершается с ошибкой с EXC_BAD_ACCESS
// ConverterController.h
# import <Cocoa/Cocoa.h>
# import "Converter.h"
@interface ConverterController : NSObject {
UInt64 gFileByteCount ;
}
-(IBAction)ProcessFile:(id)sender;
void CarbonTuner2(long numSampsToProcess, long fftFrameSize, long osamp);
@end
// ConverterController.m
# include "ConverterController.h"
@implementation ConverterController
-(IBAction)ProcessFile:(id)sender{
UInt32 packets = gTotalPacketCount;//alloc a buffer of memory to hold the data read from disk.
gFileByteCount=250000;
long LENGTH=(long)gFileByteCount;
CarbonTuner2(LENGTH,(long)8192/2, (long)4*2);
}
@end
void CarbonTuner2(long numSampsToProcess, long fftFrameSize, long osamp)
{
long numFrames = numSampsToProcess/fftFrameSize * osamp;
float g2DFFTworksp[numFrames+2][2 * fftFrameSize];
double hello=sin(2.345);
}
Возможно, это просто некоторая языковая несовместимость. Я не знаю, как хорошо взаимодействовать и c играть вместе, –
Можете ли вы опубликовать код, где вы получаете ошибки, и точную ошибку, которую вы получите, пожалуйста? Вы можете определенно использовать sin() и cos() в любом месте - я использую их все время. –
Пожалуйста, разместите код и ошибку, которую вы получаете. Моей первой догадкой было бы, что вы используете #include, а не #import –