[問題] 矩陣運算和矩陣大小的問題

看板C_and_CPP (C/C++)作者 (等待的彼端)時間16年前 (2009/08/18 21:40), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
各位大大 我現在有一個矩陣運算的function 我寫成這樣 float* w = new float [n]; float* x = new float [n]; float* b = new float [n]; ... ... ... void ArrayMultiAdd( int n, float* w, float a, float* x, float* b ) { for( int i = 0; i < n; i++ ) { cout<<"x["<<i<<"] ="<<x[i]<<"b["<<i<<"] ="<<b[i]<<"a ="<<a<<"\n"; w[i] = a * x[i] + b[i]; cout<<"w["<<i<<"] ="<<w[i]<<"\n"; } return ; } 其中float* w, float* x, float* b 是我用new float去定義它們的大小 當我數字很小的時候(大概是各位數)都能計算 但是n如果大一點(例如15)就會好像寫不進去一樣,w[i]都還是維持原本的值 如果再更大一些(例如25),整個程式好像什麼都沒執行就結束close掉 連個system("pause")都不會出現 請問這個問題該怎麼解決呢? 抱歉我對new的用法也是剛接觸而已 可能很多地方不是很清楚 請大大能告訴我一下我的問題在哪? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.218.166

08/18 22:03, , 1F
似是MemoryLeak或是記憶體來不及釋放,這部分code看不出
08/18 22:03, 1F

08/18 22:11, , 2F
那請問大大你提到的這兩種可能原因要怎麼改善阿?
08/18 22:11, 2F

08/18 22:28, , 3F
你可以看一下置底十戒有關指標的部份,注意有new有delete
08/18 22:28, 3F
文章代碼(AID): #1AYgzED9 (C_and_CPP)
文章代碼(AID): #1AYgzED9 (C_and_CPP)