【发布时间】:2015-06-26 13:21:09
【问题描述】:
我在一个程序中有一个大小为 4096 的数组,在程序的某个阶段之后,不再需要这个数组。同时,我从应用程序中获得了不同的测量数据集。我没有创建这么多数组,而是重用相同的数组来为应用程序节省内存空间。我将较小尺寸的不同测量数据(例如:64)存储在上述数组中。
示例: double bigArray[4096] 的目的已经完成,这个数组在程序的后面部分被重用来存储其他测量值。
- 大小为 64 的测量数据 1 存储在 bigArray[0 到 63] 中
- 大小为 64 的测量数据 2 存储在 bigArray[64 到 127] 中
- 大小为 64 的测量数据 3 存储在 bigArray[128 到 191] 中
现在我需要将值传递给其他函数,如下所示:
void main()
{
xyzFunction(bigArray[0:63], bigArray[64:127], bigArray[128:191]);
}
void xyzFunction(double *data1, double *data2, double *data3)
{
...calculations involving data1, data2, data3...
}
data1 应该只指向前 64 个数组元素,依此类推。我尝试过,但无法将部分数据从 bigArray 完全传递给函数。
我们非常感谢您为实现这一目标提供的任何帮助。 提前致谢。
【问题讨论】:
-
你不能只指向前 64 个元素,因为指针只指向 one 元素,但你可以选择它指向的元素:
(&bigArray[0], &bigArray[64], &bigArray[128]).