[問題] C++無法編譯

看板C_and_CPP (C/C++)作者 (請大家幫我抓小偷)時間16年前 (2009/04/21 22:38), 編輯推噓8(8028)
留言36則, 6人參與, 最新討論串1/1
請問一下... 為什麼以下的C++程式跑出來會有問題呢?? 是所需記憶空間太大嗎?? 該怎麼解決呢?? 我所用的編譯軟體是Microsoft Visual C++ 再請問一下...可以推薦一下適合vista用的C++編譯軟體嗎?? 感謝 int *mark; int i,k; int series=80; mark=new int[(series+1)*(49+1)]; for(k=1;k<=series;k++) { for(i=1;i<=49;i++) { *(mark+k*(series+1)+i)=0; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.146.131

04/21 22:45, , 1F
你要說說你哪裡有問題 是compile error還是run time?
04/21 22:45, 1F

04/21 22:47, , 2F
無法編譯完成..指標初始化到一半就停了
04/21 22:47, 2F

04/21 22:48, , 3F
先看一下迴圈上限 k跑到series=80 就已經超過 你new的大小了
04/21 22:48, 3F

04/21 22:48, , 4F
k = 80, 則那串表示法為 mark + 80 * 81 + i
04/21 22:48, 4F

04/21 22:49, , 5F
啥? `無法編譯完成 指標初始化到一半就停 ? `
04/21 22:49, 5F

04/21 22:49, , 6F
指標初始化已經是run time了 已經是編譯後執行的事情了
04/21 22:49, 6F

04/21 22:56, , 7F
對不起我說錯了..應該是執行時有錯..
04/21 22:56, 7F

04/21 22:57, , 8F
我是把*mark當一個二維的指標來用..k=80時不是還沒
04/21 22:57, 8F

04/21 22:58, , 9F
超過最大的81列嗎?
04/21 22:58, 9F

04/21 22:59, , 10F
我剛剛用gcc測過 是ok的~Q大應該是看錯你的大小是對的
04/21 22:59, 10F

04/21 23:01, , 11F
我也是看不出哪裡有錯..但用visual c++就是有問題
04/21 23:01, 11F

04/21 23:01, , 12F
該偽裝陣列起始位置應該為0,結束該為50*80+49=4050-1
04/21 23:01, 12F

04/21 23:03, , 13F
不管怎麼說 陣列大小只有 4050
04/21 23:03, 13F

04/21 23:03, , 14F
再多請教一個問題..visual c++跟vista有衝突..但我還
04/21 23:03, 14F

04/21 23:03, , 15F
是用他來寫程式..請問會是這樣的原因造成錯誤嗎?
04/21 23:03, 15F

04/21 23:05, , 16F
我跑的迴圈應該是在4050以內
04/21 23:05, 16F

04/21 23:06, , 17F
超過了先生你的式子是錯的
04/21 23:06, 17F

04/21 23:07, , 18F
80 * (80+1) + 49 會小於4050嗎 ?
04/21 23:07, 18F

04/21 23:07, , 19F
你要不要乾脆把運算式的結果在程式跑出來 看看已經多少了
04/21 23:07, 19F

04/21 23:10, , 20F
如果你把81當成列的話 那麼一列應該是50個 而不是80個
04/21 23:10, 20F

04/21 23:12, , 21F
我發現我為何會對了 :p *(mark+(i*81+k))=0;
04/21 23:12, 21F

04/21 23:12, , 22F
這樣算就對了~
04/21 23:12, 22F

04/21 23:15, , 23F
迴圈跑到k=62就錯誤了..我是想表達成一個80*49的二維
04/21 23:15, 23F

04/21 23:15, , 24F
陣列
04/21 23:15, 24F

04/21 23:22, , 25F
請問我應該怎麼修改才對呢?
04/21 23:22, 25F

04/21 23:23, , 26F
收信呀~ 我寄給你啦~ XD
04/21 23:23, 26F

04/21 23:25, , 27F
在Vista SP1上我裝了VC2003/2005/2008(共存), 也沒什麼
04/21 23:25, 27F

04/21 23:25, , 28F
問題, VC6就不知了; 唯一有問題的是VC2008我裝SP1後,
04/21 23:25, 28F

04/21 23:26, , 29F
Step by Step有時會亂跳(debug版, Disasm step也一樣)
04/21 23:26, 29F

04/21 23:33, , 30F
code::blocks如何
04/21 23:33, 30F

04/21 23:38, , 31F
感謝您的信件..請問code::blocks是什麼??
04/21 23:38, 31F

04/21 23:43, , 32F
請愛用google
04/21 23:43, 32F

04/21 23:53, , 33F
沒有爆掉嘛? 帶入80鐵定爆炸吧
04/21 23:53, 33F

04/22 00:09, , 34F
Q大 sorry啦~ 這樣的小錯誤 我在寫時會自動轉成對的~
04/22 00:09, 34F

04/22 00:10, , 35F
就這樣看錯啦~ >"<
04/22 00:10, 35F

04/22 00:28, , 36F
沒有= = 我只是怕我講錯 算數都錯了 就糗了
04/22 00:28, 36F
文章代碼(AID): #19xTfzbt (C_and_CPP)
文章代碼(AID): #19xTfzbt (C_and_CPP)