關於OPENMP的使用方法

作者: paddyzb (Leeptpt)   2018-02-26 22:16:15
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
DEV C++
問題(Question):
各位版友們好,小弟想用C++跑物理相關的運算
但因為執行效率差,所以加入了openMP這個模組來做平行處裡
當我程式是這樣寫時,並沒有問題:
https://imgur.com/6F6pSD5.png
但如果把函數回傳的值丟進陣列裡,就會出現xxx.exe已停止運作等錯誤訊息:
https://imgur.com/yzHzE2P.png
請問這是為什麼呢?
還麻煩各位版友們了~
作者: james732 (好人超)   2018-02-27 00:17:00
你的a是什麼東西?另外建議不要用截圖的方式貼程式
作者: iFEELing (ing)   2018-02-27 00:22:00
把g()拿掉看會不會過 會的話就把g()貼上來
作者: james732 (好人超)   2018-02-27 08:17:00
你的a是什麼東西?另外建議不要用截圖的方式貼程式
作者: iFEELing (ing)   2018-02-27 08:22:00
把g()拿掉看會不會過 會的話就把g()貼上來
作者: tcn1john (momo)   2018-02-27 16:33:00
a[i] 超出可用範圍吧
作者: skyrimrvks   2018-02-28 04:43:00
a的空間有至少202以上嗎?至少201
作者: joe820730 (Let it go)   2018-02-28 07:19:00
陣列的第一個位置是a[0]不是a[1],你這樣寫到a[200]的時候實際上是存取到a陣列的第201的位址,所以如果你的陣列a[]只給200,那程式就會存取到不該存取的地方了
作者: tcn1john (momo)   2018-02-27 08:33:00
a[i] 超出可用範圍吧
作者: skyrimrvks   2018-02-27 20:43:00
a的空間有至少202以上嗎?至少201
作者: joe820730 (Let it go)   2018-02-27 23:19:00
陣列的第一個位置是a[0]不是a[1],你這樣寫到a[200]的時候實際上是存取到a陣列的第201的位址,所以如果你的陣列a[]只給200,那程式就會存取到不該存取的地方了

Links booklink

Contact Us: admin [ a t ] ucptt.com