gpt4 book ai didi

c - 如何复制指针以指向同一对象

转载 作者:太空狗 更新时间:2023-10-29 17:08:56 25 4
gpt4 key购买 nike

我是所有 C 编程的新手,我有一个问题,

例如,如果我有一个结构 - 我指向它,我想创建一个新指针以指向相同的数据,但不是让两个指针指向相同的对象。如何在不复制结构中的每个字段的情况下做到这一点?

typedef struct
{
int x;
int y;
int z;
}mySTRUCT;

mySTRUCT *a;
mySTRUCT *b;
a->x = 1;
a->y = 2;
a->z = 3;

现在我希望 b 指向相同的数据

b = *a 

不对,编译器在骂我

任何帮助都会很棒!谢谢:)

最佳答案

首先,您的代码不正确。您创建了一个名为 a指针,但您没有创建任何东西让它指向。在它指向某物之前,您不能取消引用它(使用 a->x)。

一旦您确实拥有一些指针指向的结构,您就可以通过赋值复制它们:

myStruct a_referand = {0};
myStruct b_referand = {0};
myStruct *a = &a_referand;
myStruct *b = &b_referand;

a->x = 1;
*b = *a; // copy the values of all members of a_referand to b_referand
// now b->x is 1
b->x = 2;
// now b->x is 2 but a->x is still 1

关于c - 如何复制指针以指向同一对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11394043/

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