gpt4 book ai didi

c - 在 C 中将数组分成更短的数组

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

在 C 程序中我有这个变量:

float (*data)[3];
data = (float (*)[3])calloc(ntimes, sizeof(float[3]));

稍后进行初始化。之后,我想将“data”中的所有信息传递给我定义的一系列名为“data_i”的 ntimes 变量:

typedef float (*el_i)[3];
el_i data_i[NTIMES]; // NTIMES is a constant with value "ntimes"
for (i = 0; i < ntimes; i++) data_i[i] = (float (*)[3])calloc(1, sizeof(float[3]));

然后我尝试将信息从“data”传递到所有“data_i”

    for (i = 0; i < ntimes; i++){
data_i[i][0][0]=data[i][0];
data_i[i][0][1]=data[i][1];
data_i[i][0][2]=data[i][2];
}

您认为 data_i[i][0][0] 的语法正确吗?这是进行信息传输或复制的更好方法吗?谢谢

最佳答案

如果你总是精确调用 1 数组,那么你只能用 0 索引数组指针。那么不采用 float* 并省略一个索引步骤的原因是什么?

typedef float *el_i;
el_i data_i[NTIMES];
for (i = 0; i < ntimes; i++) data_i[i] = (el_i)calloc(1, sizeof(float[3]));

for (i = 0; i < ntimes; i++){
data_i[i][0]=data[i][0];
data_i[i][1]=data[i][1];
data_i[i][2]=data[i][2];
}

我真的不明白这样做的全部目的。

关于c - 在 C 中将数组分成更短的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3700198/

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