将特定大小的数组传递给C中的函数

时间:2015-06-26 13:21:10

标签: c arrays function

我在程序中有一个大小为4096的数组,在一段程序之后,不再需要这个数组。同时,我从应用程序中获得了不同的测量数据集。我没有创建这么多数组,而是重用相同的数组来为应用程序节省内存空间。我在上述阵列中存储较小尺寸的不同测量数据(例如:64)。

实施例: 完成 double bigArray [4096] 的目的,并在程序的后续部分重用此数组以存储其他测量值。

  • 存储在bigArray [0到63]
  • 中的大小为64的测量数据1
  • 存储在bigArray [64到127]
  • 中的大小为64的测量数据2
  • 存储在bigArray [128到191]
  • 中的大小为64的测量数据3

现在我需要将值传递给其他函数,如下所示:

procfs

data1应该只指向前64个数组元素,依此类推。我试过但无法将bigArray中的部分数据完全传递给函数。

非常感谢任何帮助实现这一目标。 提前谢谢。

1 个答案:

答案 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的评论,除非您应该传递大小,除非它始终相同。