关于OPENMP的使用方法

楼主: paddyzb (Leeptpt)   2018-02-26 22:16:15
开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
DEV C++
问题(Question):
各位版友们好,小弟想用C++跑物理相关的运算
但因为执行效率差,所以加入了openMP这个模组来做平行处里
当我程式是这样写时,并没有问题:

但如果把函数回传的值丢进阵列里,就会出现xxx.exe已停止运作等错误讯息:

请问这是为什么呢?
还麻烦各位版友们了~
作者: 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