如何使用指向结构的指针复制结构?

时间:2015-07-01 05:49:06

标签: pointers structure copying

我需要使用相应的结构指针将结构的一个实例复制到另一个实例。我试过的代码如下:

typedef struct{
int a, b, c;} test;

int main(){
test *q, *w;
(*w).a = 2;
(*w).b = 3;
(*w).c = 4;

printf("\n%d\n%d\n%d", (*w).a, (*w).b, (*w).c);

memcpy((void*)q, (void*)w, sizeof(test));

printf("\n%d\n%d\n%d", (*q).a, (*q).b, (*q).c);

return 0;

我得到的输出是:

2
3
4
1875984
32768
1296528

有人可以告诉我如何复制结构吗?我需要使用指向结构的指针,只需执行:

test w, q;
q = w;

不适合我的课程。

感谢。

1 个答案:

答案 0 :(得分:2)

替换代码中的行:

memcpy((void*)q, (void*)w, sizeof(test));

使用以下行:

memcpy((void*)&q, (void*)&w, sizeof(test));