作者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
推 LPH66:memmove(p2,p1,sizeof(TYPEA)); 這樣? 09/14 00:39
→ helloken:謝謝一樓 我會試試看 09/14 00:44
→ VictorTom:有個問題, 如果TYPEA有pointer又是另外配置空間來的, 單 09/14 01:14
→ VictorTom:純memcpy的行為還是處理不了這個狀況; 事實上個人以為, 09/14 01:15
→ VictorTom:複雜一點的結構特地寫一個copy function反而是好事, 09/14 01:16