编辑:删除 C++ 位以避免混淆
我有一个像这样的数据数组
int numSamples = 16;
float *lData = (float*)calloc(numSamples, sizeof(float));
...并且我想将这些数据传递到具有这样定义的函数中。. .
void processSampleBlock (const float ** inputChannelData,
int numInputChannels,
...)
如您所见,此函数接受一个可以有多个通道的二维数组。我的数据只是一个单通道 (1D),但我可以通过像这样进行强制转换来使代码编译得很好。.
processSampleBlock ((const float**)(lData),
1,
...)
但是,我在运行时遇到错误的访问错误,然后函数块中的代码尝试取消引用函数中的数据。.
for (int nn=0; nn< numSamples; ++nn)
{
float x = inputChannelData[0][nn]; //--> Computer says no
}
我对 C 风格的多维数组毫无用处,并且可能在这里犯了一个基本错误。任何帮助都会很棒!谢谢