作者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