看板 EE_DSnP 關於我們 聯絡資訊
當原本的memBlock空間不夠的時候 會要新建一個memBlock 如果有開debug 會印出 New MemBlock... 0x936fdb8 Memory acquired... 0x936fdd0 發現memory acquired的位址和 new memBlock的位址不同 (cout<<_activeBlock->getMem(size,ret)) (cout<<_activeBlock) 請問這是不是因為 在memBlock class裡 存data member的次序 並不是把_begin存在最開頭 而是把_nextBlock放在最前面? 那又是不是每次得到的兩者的差都是固定的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234
jokerspy:喔是不是還有存char[b]的b? 05/07 11:07
ric2k1:"cout << _activeBlock" 印出來的是 _activeBlock 這個 05/07 12:33
ric2k1:pointer 的 address, 而 "cout<<_activeBlock->getMem(..)" 05/07 12:34
ric2k1:印出的是 "_activeBlock->_begin" 這個 pointer 的 address 05/07 12:34
ric2k1:當然會不一樣囉! 05/07 12:35
ric2k1:差距有可能很巧合的都固定, 但事實上很有可能會改變, 因為 05/07 12:36
ric2k1:這兩個 pointer 本來就是不同時間 allocate 出來的... 05/07 12:37
jokerspy:所以差距不固定是正常的囉??因為我看ref的好像都固定是 05/07 14:11
jokerspy:18 可是我的是會亂跳 05/07 14:11