作者takua624 (TAKUA)
看板EE_DSnP
標題Re: [問題] pushFront()
時間Mon Nov 14 16:12:28 2011
※ 引述《Komemushisp (...)》之銘言:
: 問一個蠢問題QQ
: -----------------------
: 當delete掉memTestObj時,把它存進recycleList,
: 應該會用到pushFront()這個function,
: 我看投影片是要把_first改成傳進去的pointer,
: 那之前的_first所指的位置要怎麼存呢 QQ ??
: 感謝回答!!!
那現在假設_first已經指到一個OBJ1,那PUSH一個OBJ2的意思是說:
讓_first指到OBJ2,然後把OBJ2的內容(想辦法)改成OBJ1的地址嗎?
--
春
苑樹雪菜萌苗,
雀兒喜上夏枝梢;
藍眼望盡
黃泉路,只盼儷人一
美笑。
長巾初解投送抱,金
珠麗葉賀新好;
神代仙眷且羨嫉,長伴相隨誓到老。
靜馬千華留秋晚,冬風不止
三鄉道;
紅枝立約攜手情,今此空餘泣嚎啕。
姬宮千歌音悠悠,
櫻井奏樂聲裊裊;奈何天令伊人變,
飛離斯愛離斯去。
結城AIRA→ 悲慟獨泣無人應,
白晝夢盡皆空語。
←美鄉あき
Kalafina→ 紅月旋響戚
音樂,黯然步上
鎮魂旅。
←飛 蘭
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.107
1F:推 ric2k1:是的,recycle list 基本上是 first-in-last-out 11/14 16:15
2F:→ ric2k1:不過精確地說,是把 OBJ2 的前 4/8 個 Bytes 的內容改成 11/14 16:15
3F:→ ric2k1:OBJ1 的地址。 11/14 16:16
謝謝教授。
不過爬文之後還是不懂可以怎麼把OBJ2的前XXX個byte改成OOO
我(自認為)已經會用謎一般的CAST方法把把OBJ2視為T*然後把OBJ1的地址寫進去
請問寫進去就是自動寫在前XXX個byte嗎?還是要另外指定"請寫在前XXX個byte"?
※ 編輯: takua624 來自: 140.112.25.107 (11/14 16:27)
4F:→ e124553423:因為OBJ2本身也是指標指過去的,把他cast成T*後會從指 11/14 16:45
5F:→ e124553423:過去的位置開始取size_t大小(指標的大小),所以一定是 11/14 16:46
6F:→ e124553423:前幾位 11/14 16:46
嗯嗯,感謝啦~!所以就是不用另外指定了,很好
※ 編輯: takua624 來自: 140.112.25.107 (11/14 17:21)
7F:推 inferior9527:可以問一下要怎麼cast嗎 @@? 11/14 17:41
8F:→ takua624:有一種謎一般的CAST方式叫做reinterpret_cast 11/14 21:39
9F:→ takua624:用法請去股溝(GOOGLE,請別誤會)找找 11/14 21:39
10F:推 shryuhuai:我都用(T*),聽說這種方法好像不太好...... 11/14 22:21
11F:推 vuluy:真的喔,我都用樓上那種方法耶,會怎樣不好嗎 11/14 22:47
12F:推 victoret:同樓上...之前用了 reinterpret_cast 覺得打起來太長了 11/14 23:06
13F:推 Komemushisp:我也是用reinterpret_cast... 11/14 23:20
15F:→ j0214ack:看起來(T*)跟re_cast是一樣的,反正後續還想呼叫member 11/24 11:11
16F:→ j0214ack:都會出事 11/24 11:12
17F:推 j0214ack:但(T*)好像不保證轉換之後值會一樣 11/24 11:17