看板 C_and_CPP 關於我們 聯絡資訊
想請教一個問題 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