作者fiafju (哭哭)
看板EE_DSnP
標題Re: [問題] hw2
時間Sun Apr 5 00:25:55 2009
晚上我抱著試試的心態
用家裏電腦的ubuntu試run看看(和當初寫code是不同台電腦)
然後它 又crash了 == ==
我開始懷疑當初我是不是寫太久
寫到頭昏腦脹
看到我code可以run的假象了.........
我用ddd跑
發現crash點1
它在inssertChar()裡
....
*_readBufPtr = *temp;
--> cout << *_readBufPtr;
_readBufPtr++;
......
執行箭號那行時crash
在那行之前都是OK的
囧 cout有做了啥事會讓code掛掉嗎....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.30.93
※ 編輯: fiafju 來自: 124.8.30.93 (04/05 00:26)
1F:→ dostaevsky:*temp真的有指ㄧ個可以cout在螢幕上到東西嗎? 04/05 00:31
2F:→ fiafju:有阿 跑完*_readBufPtr=*temp 後*_readBufPtr的值真的有變 04/05 00:39
3F:推 dostaevsky:有試著用ddd的"Run in execution window"試試嗎 04/05 00:39
4F:→ dostaevsky:可以看到cout出來的結果 04/05 00:40
5F:→ dostaevsky:感覺會有點像真的在工作站上執行該程式 04/05 00:40
6F:→ fiafju:我用了 就是用了才知道當在哪 和 temp有丟值進_readBufPtr 04/05 00:41
7F:推 lovelylion2:temp指到不該指的地方了吧.. 04/05 00:42
8F:→ lovelylion2:cout << temp; 看看位址是不是不太對 04/05 00:42
9F:→ fiafju:感謝兩位~~ 的確是temp 在搞怪 04/05 01:52
※ 編輯: fiafju 來自: 124.8.8.104 (04/05 01:55)
10F:→ fiafju:可是我用ddd看 temp在crash之前都有正常運作耶 04/05 01:56
11F:→ fiafju:也有把該存的值存進去阿 直到cout那行才炸 這是為什麼呢?? 04/05 01:57
12F:推 ric2k1:就像 HW#1.2 的 prob 1 一樣, 應該是記憶體被 contaminated 04/05 02:24
13F:→ ric2k1:cout 也會吃記憶體, 所以 temp 所指到的記憶體已經無效? 04/05 02:25
14F:→ fiafju:感謝老師!! (老師好晚上站阿XDDD) 04/05 02:59
15F:→ fiafju:其實後來也有想到 這應該就是老師在hw1要給我們看的東西 04/05 03:00
16F:推 ric2k1:所以後來找到原因了嗎? 可以分享一下嗎? 04/06 23:44