作者helloken (Macgyver)
看板C_and_CPP
标题[问题] pointer问题
时间Mon Sep 14 00:33:57 2009
TYPEA* p1;
TYPEA* p2;
...
p1里有存一些资料
现在我想把p1的资料复制给p2
但如果我直接写p2 = p1
这样我去修改p2时会改到p1的值
目前我是写一个copy function...很笨
p2->info1 = p1->info1;
p2->info2 = p1->info2;
...
想请问版上的有经验的版友
有没有比较聪明的写法
先在此谢谢了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.190.181
1F:推 LPH66:memmove(p2,p1,sizeof(TYPEA)); 这样? 09/14 00:39
2F:→ helloken:谢谢一楼 我会试试看 09/14 00:44
3F:→ VictorTom:有个问题, 如果TYPEA有pointer又是另外配置空间来的, 单 09/14 01:14
4F:→ VictorTom:纯memcpy的行为还是处理不了这个状况; 事实上个人以为, 09/14 01:15
5F:→ VictorTom:复杂一点的结构特地写一个copy function反而是好事, 09/14 01:16