【发布时间】:2021-10-05 20:12:47
【问题描述】:
我一直在用 C 语言编写一个执行 2D 卷积的函数,为此我需要向它导入三个不同的 3D 数组。所以我宣布,例如:
typedef struct {
float img[6][6][1];
} input_6_t;
现在我需要将值写入结构。稍后我会将它作为指针传递给将进行卷积的函数。
我试过了:
input_6_t test_image;
test_image.img = { {1,2,3,4,5,6} , {2,1,1,1,2,2} , {3,1,1,1,2,2} , {4,1,1,1,2,2} , {5,2,2,2,2,2} , {6,2,2,2,2,2} };
但它返回一个语法错误。这样做的正确方法是什么?
提前谢谢你。
【问题讨论】:
-
对,我刚注意到,让我编辑帖子
-
将数组包装成结构使得可以制作非衰减数组。但是,将其传递给函数或按值返回需要制作副本,在这种情况下成本非常。你确定你真的需要它吗?
-
我尝试将一个三维指针传递给函数,但它似乎不起作用。我看到的唯一选择是序列化 3d 数组以传递它,然后反序列化它,但这会占用大量资源。我认为在这个例子中我只会将数组的指针传递给函数,而不是复制它。
-
通常最好使用指向多维数组的指针,C99 中的可变长度数组大大简化了它。考虑在单独的问题中发布原始问题