假設我有一個這樣的結構:如何對待Ç結構分配
typedef struct {
char *str;
int len;
} INS;
這結構的數組。
INS *ins[N] = { &item, &item, ... }
當我嘗試訪問它的元素,而不是指針,但結構本身,所有的字段被複制到一個臨時的地方的地方嗎?
for (int i = 0; i < N; i++) {
INS in = *ins[i];
// internaly the above line would be like:
// in.str = ins[i]->str;
// in.len = ins[i]->len;
}
?
因此,當我增加結構域將是一個更昂貴的賦值操作?
在問題中沒有跡象表明代碼將在創建後對「in」進行更改。定義'in'可能僅僅是訪問所需數組元素成員的便利。這將是完全有效的代碼。 – 2012-08-14 16:21:55