我需要使用相应的结构指针将结构的一个实例复制到另一个实例。我试过的代码如下:
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;
不适合我的课程。
感谢。
答案 0 :(得分:2)
替换代码中的行:
memcpy((void*)q, (void*)w, sizeof(test));
使用以下行:
memcpy((void*)&q, (void*)&w, sizeof(test));