[問題] C++ 物件和指標的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
linux g++
問題(Question):
很不好意思連續po文問問題...orz
但是我自己找了好久都找不到問題在哪裡
懇請版上大大們不要見怪@@
我碰到的問題是:
class的member function回傳另一個物件的陣列
(mcArray::move() 回傳 mcWalker*)
逐行執行的時候發現...
在member function裡面存的陣列還是正確的
但是回傳到main之後就少了第一個元素!!
最奇怪的是,當回傳陣列長度比10大的時候
回傳是正確的資料
但是當回傳陣列比10小的時候就出問題了
我反覆找了好久始終找不到錯誤到底在哪裡
我猜是我指標的語法有問題
不然就是malloc和free的時候出了問題
三個classes分別是: randDist, mcWalker, mcArray
randDist 建立任意數
mcWalker 是random walker的物件,包含每個walker相關的資料和功能
(像是位能、座標等等的)
mcArray 是mcWalker的陣列,用到malloc還有其他關於系統的函數
餵入的資料(Input):
在 main 中定義walker數量 numW
還有要把walker動幾次的數量 STEP
預期的正確結果(Expected Output):
回傳member function造出的mcWalker陣列
錯誤結果(Wrong Output):
回傳陣列的第一個元素不見了
程式碼(Code):(請善用置底文網頁, 記得排版)
main.cpp: http://paste.plurk.com/show/411766/
randDist.cpp: http://paste.plurk.com/show/411769/
randDist.h: http://paste.plurk.com/show/411775/
mcWalkers.cpp: http://paste.plurk.com/show/411770/
mcWalkers.h: http://paste.plurk.com/show/411774/
mcArray.cpp:http://paste.plurk.com/show/411771/
mcArray.h: http://paste.plurk.com/show/411772/
補充說明(Supplement):
不好意思原始碼很亂...
但是我也不知道跟怎麼整理
也希望版上大大給我些建議
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.234.211
→
03/31 18:53, , 1F
03/31 18:53, 1F
→
03/31 19:02, , 2F
03/31 19:02, 2F
→
03/31 19:16, , 3F
03/31 19:16, 3F
→
03/31 19:17, , 4F
03/31 19:17, 4F
推
04/02 16:44, , 5F
04/02 16:44, 5F
推
04/02 16:56, , 6F
04/02 16:56, 6F