最近我查閱了一些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