→ Feis:data[i] 的型態是甚麼? 01/09 06:06
→ logs:double* data; 動態宣告使用 data = new double[NUM]; 01/09 07:22
推 johnpage:Num等於n嗎? 01/09 08:03
→ shadow0326:十之八九是哪裡有未定義行為 01/09 13:34
debugger的提示是存取到不合法的區塊,但詳情我實在看不懂,無法在這裡提供出來
→ linotwo:你可以檢查 failbit,或是問題出在你沒打出來的部分。 01/09 16:37
→ linotwo:也可以試試看 cout << data[i] 能不能印出來 01/09 16:42
NUM = n
cout << data[i] 也完全沒有問題!
因為還有其他的 function (在這些問題程式碼之前)
會把 data 中所有的資料全部拿來用
除了結果是完全正確以外,也沒有發現任何 NaN、或者未定義數值的影響。
我現在懷疑另一個問題:
假如其他的變數存取,ex: facet[] 另一個 double array
不小心存取到了範圍外的位置,比如 facet[-1],是否有機會造成這種問題?
但我可以確定的是 facet[-1] 怎麼樣也無法觸及 data[] 任何元素的位置。
換句話說,目前可以保證的是:
data 這個 double array 裏頭的資料,自始至終沒有被「外力」不正常影響過。
※ 編輯: logs 來自: 111.255.48.236 (01/09 18:07)
推 yvb:這種情況多半是未打出來的部分有問題, 而把 stack 或 01/09 18:25
→ yvb: data segment 弄亂了. 在此處當掉或化解方式都只是剛好而已. 01/09 18:26
→ Feis:其他的變數存取有機會造成這問題. 因為是未定義行為 01/10 12:26
→ Feis:你把其他的部分都註解掉試看看不就好了? 01/10 12:26