当前位置: 代码迷 >> 多核软件开发 >> OpenMp里设为firstPrivate的指针数组无法私有,仍是共享的,咋回事呢
  详细解决方案

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

热度:1817   发布时间:2013-02-26 00:00:00.0
OpenMp里设为firstPrivate的指针数组无法私有,仍是共享的,怎么回事呢?
以下是代码片段
  bool **comMatrix;
  int stemCount;
#pragma omp parallel num_threads(2) firstprivate(comMatrix,stemCount)
{  
  initInd(comMatrix,stemCount);
}

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

而stemCount的地址就不一样,说明每个线程各自生成了一个stemCountPa的副本。难道指针数据无法私有吗?请教各位!

------解决方案--------------------------------------------------------
你的疑问我不敢下定论 但是你把一个指针赋值给另一个指针 其实这两个指针指向的地方是相同的,也就是副本并不是没有 有的 只不过还是指向了同一个地址 就好像函数中值传递和指针传递一个样