我正在开发一个有多个输入参数的项目(其中一些需要在代码中计算),所以我将它们全部放在一个结构体中。
typedef struct{
int N_cell;
int N_node;
}INPUT;
在主函数中,我声明
INPUT in;
之后有几行用于计算in.N_cell和in.N_node。现在我定义
double *pos_node[in.N_node];
for (i = 0; i < in.N_node; i++)
pos_node[i] = (double *) calloc(3, sizeof(double));
然后我需要将此数组的指针传递给我将其定义为的函数
void func(double *pos_node[????]){....}
我的问题是,我应该在“???”中写什么?地方?我应该使用 in.Node 并在参数列表中添加“INPUT in”吗?
非常感谢!
最佳答案
尝试在堆上分配pos_node:
double **pos_node = calloc(in.N_node, sizeof(double*));
for (i = 0; i < in.N_node; i++)
pos_node[i] = (double *) calloc(3, sizeof(double));
void func(double **pos_node){....}
关于c - 如何将指针传递给二维数组,其大小由C中的指针定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438564/