デバッグを実行すると、それは を指しますline: 105
(そして、左隅に「セグメンテーション違反」と書き込みます)。「コールスタック」ウィンドウの赤い線が何を意味するのかわかりません...
それが何であるか、どこでそれについてもっと読むことができるか教えてください.
関数のコードは次のとおりです。
/* Separates stereo file's samples to L and R channels. */
struct LandR sepChannels_8( unsigned char *smp, unsigned long N, unsigned char *L, unsigned char *R, struct LandR LRChannels )
{
int i;
if ( N % 2 == 0 ) // Each channel's (L,R) number of samles is 1/2 of all samples.
{
L = malloc(N / 2);
R = malloc(N / 2);
}
else
if ( N % 2 == 1 )
{
L = malloc(N + 1 / 2);
R = malloc(N + 1 / 2);
}
int m = 0;
for ( i = 0; i < N; i++ ) // separating
{
L[m] = smp[2 * i + 0]; // THIS IS THE "LINE: 105"
R[m] = smp[2 * i + 1];
m++;
}
return LRChannels;
}
そして、これがウィンドウのスクリーンショットです(説明するよりも表示する方が簡単です)