關於OPENMP的使用方法

看板C_and_CPP作者 (Leeptpt)時間6年前 (2018/02/26 22:16), 6年前編輯推噓0(008)
留言8則, 5人參與, 6年前最新討論串1/1
開發平台(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
請問這是為什麼呢? 還麻煩各位版友們了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.176.203 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1519654577.A.456.html ※ 編輯: paddyzb (42.73.176.203), 02/26/2018 22:16:50

02/27 00:17, 6年前 , 1F
你的a是什麼東西?另外建議不要用截圖的方式貼程式
02/27 00:17, 1F

02/27 00:22, 6年前 , 2F
把g()拿掉看會不會過 會的話就把g()貼上來
02/27 00:22, 2F

02/27 08:33, 6年前 , 3F
a[i] 超出可用範圍吧
02/27 08:33, 3F

02/27 20:43, 6年前 , 4F
a的空間有至少202以上嗎?
02/27 20:43, 4F

02/27 20:44, 6年前 , 5F
至少201
02/27 20:44, 5F

02/27 23:19, 6年前 , 6F
陣列的第一個位置是a[0]不是a[1],你這樣寫到a[200]的
02/27 23:19, 6F

02/27 23:20, 6年前 , 7F
時候實際上是存取到a陣列的第201的位址,所以如果你的
02/27 23:20, 7F

02/27 23:20, 6年前 , 8F
陣列a[]只給200,那程式就會存取到不該存取的地方了
02/27 23:20, 8F
文章代碼(AID): #1Qb1QnHM (C_and_CPP)