gpt4 book ai didi

c - 如何在 C 中传递可变大小的多维数组?

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:55 25 4
gpt4 key购买 nike

我正在尝试将三维数组传递给这样的函数:

void example( double*** bar ) {
// Stuff
}

int main() {
double[3][2][3] foo;
// Initialize foo
example( foo );
return 0;
}

这导致 gcc 给我“无效的指针类型”。我应该怎么做?我可以将整个论点变成一个一维数组并安排我的数据以适应它,但是有更优雅的解决方案吗?

编辑:

另外,我不能总是指定每个子数组的长度,因为它们的大小可能不同。例如:

int* foo[] = { { 3, 2, 1 }, { 2, 1 }, { 1 } };

如果有帮助的话,我正在尝试为神经网络中的神经元批量传递输入。每个神经元都有不同数量的输入。

最佳答案

只需使用double*。多维数组连续存储在内存中,因此非常欢迎您自行调整。这就是位图在 OpenGL 上的传递方式。

关于c - 如何在 C 中传递可变大小的多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30037954/

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