最近我查阅了一些C代码,并发现了一些等同于以下内容:结构在C数组成员
struct foo {
int some_innocent_variables;
double some_big_array[VERY_LARGE_NUMBER];
}
作为差不多,但不完全,几乎完全用C一个新手,我是正确的思维是由于数组成员,这个结构在使用空间方面效率非常低?当这个结构作为参数传递给函数时会发生什么?是否将其全部复制到堆栈中,包括整个阵列?
在大多数情况下,更换double *some_pointer
会更好吗?
空间使用效率低下取决于您是否使用分配的空间。如果总是使用整个数组,那么指针实际上会添加几个字节的浪费空间来存储指针本身(即使对于大数组而言可忽略不计)。 – altendky 2014-01-16 18:52:24