gpt4 book ai didi

c - C如何处理结构赋值

转载 作者:太空宇宙 更新时间:2023-11-04 01:11:25 24 4
gpt4 key购买 nike

假设我有一个这样的结构:

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*ins[i]副本

不要在意你的内存消耗,但你的代码很可能不正确:对象 in 在循环体结束时死亡,以及你所做的任何更改in 没有持久效果!

关于c - C如何处理结构赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com