「返された変数は NULL です」と言ったときは、2 つのポインターとthey == NULL
.
struct LandR_8
{
unsigned char *L; // For L channel.
unsigned char *R; // For R channel.
}; // These pointers point to the allocated memory.
struct LandR_8 LRChannels_8;
私の機能:
struct LandR_8 sepChannels_8( unsigned char *smp, unsigned char *L, unsigned char *R, unsigned long N, struct LandR_8 LRChannels )
{
int i;
L = malloc(N / 2);
R = malloc(N / 2);
for ( i = 0; i < (N / 2) ; i++ ) // separating
{
L[i] = smp[2 * i + 0];
R[i] = smp[2 * i + 1];
}
// L and R don't need `free()`.
return LRChannels;
}
LRChannels
型の変数を返しますstruct LandR
:
私は自分の関数を次のように呼び出します:
LRC_8 = sepChannels_8( ptrSamples_8, ptrSamples_8_L, ptrSamples_8_R, n, LRChannels_8 );
問題は、その機能を使用した後ですLRC_8.L == NULL
。
なぜそうなるのですか?