gpt4 book ai didi

c - 无法将一维数组转换为二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:51 24 4
gpt4 key购买 nike

编辑:删除 C++ 位以避免混淆

我有一组这样的数据

int numSamples = 16;
float *lData = (float*)calloc(numSamples, sizeof(float));

...我想将此数据传递给定义如下的函数。 . .

void processSampleBlock (const float ** inputChannelData,
int numInputChannels,
...)

如您所见,此函数接受一个二维数组,它可以有多个 channel 。我的数据只有一个 channel (1D),但我可以通过像这样进行转换来使代码编译正常。 .

processSampleBlock ((const float**)(lData),
1,
...)

但是,我在运行时遇到错误访问错误,然后函数 block 中的代码尝试取消引用函数中的数据。 .

for (int nn=0; nn< numSamples; ++nn)
{
float x = inputChannelData[0][nn]; //--> Computer says no
}

我对 C 风格的多维数组毫无用处,可能在这里犯了一个基本错误。任何帮助都会很棒!谢谢

最佳答案

你需要给它一个指向行数组的指针,所以你有一行给它一个指向该行的指针:

float *data = ...;
processSampleBlock(&data, 1);

关于c - 无法将一维数组转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com