我在程序中有一个大小为4096的数组,在一段程序之后,不再需要这个数组。同时,我从应用程序中获得了不同的测量数据集。我没有创建这么多数组,而是重用相同的数组来为应用程序节省内存空间。我在上述阵列中存储较小尺寸的不同测量数据(例如:64)。
实施例: 完成 double bigArray [4096] 的目的,并在程序的后续部分重用此数组以存储其他测量值。
现在我需要将值传递给其他函数,如下所示:
procfs
data1应该只指向前64个数组元素,依此类推。我试过但无法将bigArray中的部分数据完全传递给函数。
非常感谢任何帮助实现这一目标。 提前谢谢。
答案 0 :(得分:2)
你需要传递一个size参数,比如
void xyzFunction(double *data1, size_t data1size,
double *data2, size_t data2size, double *data3, size_t data3size)
{
/* ...calculations involving data1, data2, data3... */
}
然后就这样称呼它
xyzFunction(bigArray, 64, bigArray + 64, 64, bigArray + 128, 64);
哦,顺便说一句,这相当于@ molbdnilo的评论,除非您应该传递大小,除非它始终相同。