作者Dreamer77 (追夢)
站內C_and_CPP
標題[問題] memcpy struct
時間Sat Feb 18 16:35:35 2012
想請教一個問題
struct CC{
....
};
struct AA {
int b;
CC *c;
}aa;
如果要memcpy 一個struct object aa 因為內含一個指向別的struct 的pointer,
如果這樣寫
AA dst;
memcpy(&dst, &aa, sizeof(AA));
這樣會不會得到完整的資料呀? 突然覺得有點怪怪的
另外像是stl 中的vector or list 之類 有提供push_back
應該是copy的方式push進去吧! 那如果是像例子中的struct AA 這樣會對嗎?
那應該要怎麼克服這種問題呢? tks
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.90.125
推 tropical72:查一下 shallow copy 和 deep copy,這是 shallow copy. 02/18 17:13
→ james732:如果你不介意它們指向同一個空間的話就沒差 02/18 18:50
→ Dreamer77:不能指向同個空間爺 因為是要把local的copy到global的 02/18 23:27
→ james732:那就去找一樓提的那兩個名詞的差異吧 02/18 23:28
→ pepsicola:問題是你CC指標要指到那邊 memcpy的話指標指的目標不變 02/18 23:54