gpt4 book ai didi

c - 如何将 3d 指针数组传递给 c 中的函数?

转载 作者:行者123 更新时间:2023-11-30 17:04:17 26 4
gpt4 key购买 nike

我在这种情况下遇到问题

typedef struct {  
...
} str;

str *matrix[SIZE][SIZE][SIZE];

for (i = ...) {
for (j = ...) {
for (k = ...) {
matrix[i][j][k] = (str *)malloc(NUM * sizeof(str));
}
}
}

并通过

成功访问此 3D 数组
( (matrix[i][j][k])[n] ) //  in n-th element.

我的问题是,如何在程序的函数中传递这个 3D 指针数组(指向 struct str)?

最佳答案

您是否尝试过明显的语法:

访问第n结构:

matrix[i][j][k][n].member = value;

接收3D矩阵:

void myfunc(str *a[SIZE][SIZE][SIZE]) {
...
a[i][j][k][n].member = value;
...
}

请注意,第一个 SIZE 被忽略,数组在传递给函数时会像指针一样衰减,函数参数可以定义为 str *a[][SIZE][SIZE]str *(*a)[SIZE][SIZE] 具有完全相同的语义。

传递:

myfunc(matrix);

关于c - 如何将 3d 指针数组传递给 c 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879306/

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