【发布时间】:2011-04-11 21:07:32
【问题描述】:
最近我查看了一些 C 代码,发现与以下内容等效:
struct foo {
int some_innocent_variables;
double some_big_array[VERY_LARGE_NUMBER];
}
几乎,但不完全是,几乎完全是 C 中的新手,我是否认为这个结构由于数组成员而在空间使用方面效率非常低?当这个结构作为参数传递给函数时会发生什么?是否完整复制到堆栈上,包括整个数组?
在大多数情况下使用double *some_pointer 会更好吗?
【问题讨论】:
-
空间使用效率低取决于您是否使用分配的空间。如果总是使用整个数组,那么指针实际上会增加几个字节的浪费空间来存储指针本身(即使对于大型数组来说可以忽略不计)。