作者KAINTS (大安Eason哥)
看板C_and_CPP
標題[問題] 函式應用(c語言)
時間Wed Feb 8 19:36:23 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
MacOS
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
xcode
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
none
問題(Question):
主要我是要寫一個程式具有兩個函式
1) 找到每行的最大值
2) 算出每行的平均值
但是我在觀察我的結果 發現引數陣列("v" in my code)會被改變
有在函式加入const 照理說應該不會改變到引數陣列
http://imgur.com/a/imLzE 這是我的結果
http://ideone.com/ocNpA7 這是我的程式碼
然後在ideone的環境下執行反而我正確的結果都跑掉了...
我自己有去google const 的用法
有些情況好像const無法保證傳值不會被改變...
不過我現在還沒看到pointer那章
所以那邊觀念還很薄弱 太久沒碰c了
再麻煩大大跟我說一下我哪邊想錯了
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.143.56
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1486553787.A.12D.html
※ 編輯: KAINTS (220.133.143.56), 02/08/2017 20:08:38
謝謝大大 我在研究看看
2F:→ kokal: vy[1][i] 存取到其他位置了 02/09 00:32
這樣為什麼會改變到main裡面的v??
3F:→ a21802: 二維陣列不能這樣傳 02/09 14:31
是跟位址有關係嗎??
※ 編輯: KAINTS (220.133.143.56), 02/09/2017 22:13:50
4F:→ kokal: 在宣告變數時的記憶體分配順序是未定義,所以v剛好接在max或 02/09 23:54
5F:→ kokal: ave後面 02/09 23:54