この問題に関してここに多くの投稿をして申し訳ありませんが、私はここで進歩を遂げています。
Cにあるコールバック関数があり、新しいバッファが到着したときに呼び出されます。
私はここで、そのコールバックでは何もしないように、mallocではなく、何もしないように言われました。
次に、新しいバッファを別のクラスに送信します(これにより、サークルバッファが作成され、多くのバッファが保存されます)。
しかし、私が得られない基本的なことは、コールバックから別の関数を呼び出す場合、その関数でそれを行うのと同じです。そのため、DSPを実行し、時間がかかるので、それを実行するのと同じです。そのコールバックで-シリアルであるため。
froof:別のクラスの別の関数にデータを送信していますが、そこでデータを送信しようとすると、もう一度NSLOG
このメモリリークが発生します。
これが私がコールバックから呼び出す他のクラスです:
- (id)init
{
self = [super init];
if (self)
{
data = malloc (sizeof(SInt16) * 4000);
}
return self;
}
-(void)sendNewBuffer:(SInt16*)buffer
{
data=buffer;
NSLog(@"data arrived size is : %lu",sizeof(data));
for(int i=0; i<sizeof(data);i++)
{
NSLog(@"%d",data[i]);
}
}
の場合にのみ、comment the log
メモリリークなしで動作します。これは、コールバックがそれを待っていることを意味します!
そのデータを他の場所で並行して処理するにはどうすればよいですか?私は今そのために一週間を過ごしています。
ありがとう。