OpenMp里设为firstPrivate的指针数组无法私有,仍是共享的,怎么回事呢?

tiantian111hao 2012-05-19 01:42:42
以下是代码片段
bool **comMatrix;
int stemCount;
#pragma omp parallel num_threads(2) firstprivate(comMatrix,stemCount)
{
initInd(comMatrix,stemCount);
}

查看comMatrix的地址发现,两个线程中这个变量的地址是一样的,说明没有生成私有的comMatrix,

而stemCount的地址就不一样,说明每个线程各自生成了一个stemCountPa的副本。难道指针数据无法私有吗?请教各位!
...全文
358 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiantian111hao 2012-05-20
  • 打赏
  • 举报
回复
明白ls的意思了,是说和是否是并行无关,是因为函数中传递了指针~~~~~~~~~非常感谢~我再把代码改改看~
modyaj 2012-05-20
  • 打赏
  • 举报
回复
你的疑问我不敢下定论 但是你把一个指针赋值给另一个指针 其实这两个指针指向的地方是相同的,也就是副本并不是没有 有的 只不过还是指向了同一个地址 就好像函数中值传递和指针传递一个样

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧