0

デバッグを実行すると、それは を指します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; 
}

そして、これがウィンドウのスクリーンショットです(説明するよりも表示する方が簡単です)

ここに画像の説明を入力

4

3 に答える 3