我是所有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
这不正确,编译器对我大吼大叫
任何帮助都会很棒!谢谢你:))
答案 0 :(得分:10)
首先,您的代码不正确。您创建了一个名为a
的指针,但您没有创建任何指向它的内容。
一旦你的指针确实有一些结构指向,那么你可以通过赋值来复制它们:
a->x
答案 1 :(得分:1)
memcpy()
函数将数据块从一个位置复制到另一个位置。为了适合您的问题,您将执行:
memcpy(b, a, sizeof(*b));