gpt4 book ai didi

c - 在 C 中创建锯齿状 3D 数组

转载 作者:行者123 更新时间:2023-11-30 18:02:21 24 4
gpt4 key购买 nike

我正在尝试使用 C 创建动态 3D 数组。这个想法是创建一个看起来像这样的 3D 数组

A[0][128][128]
A[1][64][64]
A[2][32][32]
A[3][16][16]
A[4][8][8]
.....
A[n][1][1]

n,128,128 是输入。

有人可以建议如何做到这一点吗?

最佳答案

以下函数为动态数组分配内存。 elem_size 是每个元素的大小,n 指第一个维度的大小,其他两个维度的大小为 128

void* create_3Darray(size_t elem_size, size_t n) {
return malloc(elem_size * n * 128 * 128);
}

用法:

int ***arr = create_3Darray(sizeof(int), 256);
arr[2][5][12] = 12;

您可以用calloc替换malloc来将元素初始化为0,否则数组可能会填充随机值。

此外,您还应该小心,不要读取/写入超出数组/维度边界。

关于c - 在 C 中创建锯齿状 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211582/

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