[問題] memcpy struct

看板C_and_CPP (C/C++)作者 (追夢)時間14年前 (2012/02/18 16:35), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/1
想請教一個問題 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

02/18 17:13, , 1F
查一下 shallow copy 和 deep copy,這是 shallow copy.
02/18 17:13, 1F

02/18 18:50, , 2F
如果你不介意它們指向同一個空間的話就沒差
02/18 18:50, 2F

02/18 23:27, , 3F
不能指向同個空間爺 因為是要把local的copy到global的
02/18 23:27, 3F

02/18 23:28, , 4F
那就去找一樓提的那兩個名詞的差異吧
02/18 23:28, 4F

02/18 23:54, , 5F
問題是你CC指標要指到那邊 memcpy的話指標指的目標不變
02/18 23:54, 5F
文章代碼(AID): #1FFsBPYn (C_and_CPP)
文章代碼(AID): #1FFsBPYn (C_and_CPP)