國立臺灣大學

#新手 結果正確,卻return錯誤訊息

2020年8月1日 01:52
我要完成費氏數列 並且有算過的的話,直接給存起來 code如下
而且跑出來的結果是對的
但為甚麼main function會return錯誤的值回來呢?
13
留言 8
文章資訊
Logo
每週有 34 則貼文
共 8 則留言
國立中正大學
你的陣列只有宣告3的長度,你不能這樣一直往後塞
國立交通大學
很久沒用 dev 了,不太確定它會怎麼輸出錯誤 我先說我第一眼看到的問題: 1. 你沒有指定 size 給 ary[],代表它是根據你的初始值自動決定 size = 3,可是你的程式卻會 access 到 ary[11]。 2. 你的 ary[] 已經是 global variable,那代表 fab() 不需要透過參數 p 也可以取得 ary[] 的 pointer。 第 1 點是程式有 bug 必須修正,第 2 點只是純粹增進效能。 如果你解決第 1 點還是會 return 非 0 的話,我再想想看有沒有其他原因哈哈
國立政治大學
The return value 3221225477 in hex is 0xC0000005 or STATUS_ACCESS_VIOLATION 意思是你在非預設的記憶體寫入,照樓上說的,先宣告array 大小return 就正常了
國立交通大學
改用c++ STL vector 熟悉一下~
國立交通大學 資訊科學與工程研究所
要先想想為什麼需要array 其實可以直接return
原 PO - 國立臺灣大學
B5 因為這樣已經算過的 就不用重新再算一次
國立交通大學 資訊科學與工程研究所
費式求值只要用到前兩個結果,所以可以只用兩個變數存(這個時候就不是遞迴了 寫遞迴時一般不用flag 去判斷要執行什麼,一般遞迴看if的條件就知道這code在幹嘛 如果要做記憶法array的長度也要開到n
原 PO - 國立臺灣大學
B7 收到 我只用3個變數就可以了 這樣就不用設array了 感謝^^