2015-07-01 2 views
0

Мне нужно скопировать один экземпляр структуры в другую, используя соответствующие указатели структуры. Код, который я попробовал это следующим образом:Как скопировать структуры с помощью указателей на структуры?

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; 

не подходит для моей программы.

Спасибо.

ответ

2

Заменить строку в коде:

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

со следующей строкой:

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

Я попробовал это. Программа отображает ошибку времени выполнения - она ​​не запускается до завершения. Спасибо, что ответили - любые другие идеи? –

 Смежные вопросы

  • Нет связанных вопросов^_^