[問題] malloc在VS2015會讓程式卡住

看板C_and_CPP作者 (Jay)時間5年前 (2018/12/12 10:02), 5年前編輯推噓1(104)
留言5則, 4人參與, 5年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) WIN10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual Studio 2015 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC 問題(Question): 想把一個在VS2003上的專案搬到VS2015並升級64位元 不過程式跑到下面的code時會卡住 CRule** m_pList; m_pList = (CRule**) malloc (nums*sizeof(CRule*)); CRule* pData = new CRule(); m_pList[i] = pData; 但我改寫成new 時程式就不會卡住了 m_pList = new CRule*[nums * suzeof(CRule)]; 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) 補充說明(Supplement): 不過同樣的指令在VS2003 是正常的 目前我唯一能懷疑的是在sizeof(CRule*) 時 64bit 會抓8byte 但32bit 會抓4byte 不過我想這因該不會影響程式運作 再請前輩賜教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.200.146 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1544580121.A.C88.html

12/12 10:27, 5年前 , 1F
講個無關的 那個new應該是[num]才對?
12/12 10:27, 1F

12/12 12:27, 5年前 , 2F
那個是malloc用法吧
12/12 12:27, 2F

12/12 16:54, 5年前 , 3F
完全看不出你到底想配置幾個 element
12/12 16:54, 3F
nums是個變動的int 因為我想說這邊比較沒有關係所以就沒有標明了 ※ 編輯: asdfg1597860 (59.127.200.146), 12/12/2018 17:06:10

12/12 19:01, 5年前 , 4F
那你知道 new [] 中括號裡面該擺什麼嗎?
12/12 19:01, 4F
確實new裡面因該只能擺上nums 這樣才對

12/12 22:27, 5年前 , 5F
這種問題你只能自己查,通常是自己程式的問題
12/12 22:27, 5F
好的 謝謝前輩 ※ 編輯: asdfg1597860 (59.127.200.146), 12/14/2018 10:35:50 ※ 編輯: asdfg1597860 (59.127.200.146), 12/14/2018 10:36:32
文章代碼(AID): #1S46mPo8 (C_and_CPP)