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

时间:2012-07-09 11:20:51

标签: c pointers struct duplicates

我是所有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 

这不正确,编译器对我大吼大叫

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

2 个答案:

答案 0 :(得分:10)

首先,您的代码不正确。您创建了一个名为a指针,但您没有创建任何指向它的内容。

一旦你的指针确实有一些结构指向,那么你可以通过赋值来复制它们:

a->x

答案 1 :(得分:1)

memcpy()函数将数据块从一个位置复制到另一个位置。为了适合您的问题,您将执行:

memcpy(b, a, sizeof(*b));