什么是C++中的**

dec*_*iar 3 c c++ memory pointers

我目前正在阅读一些C++源代码,我遇到了这个:

 double **out;
 // ... lots of code here 

 // allocate memory for out
 out = new double*[num];
Run Code Online (Sandbox Code Playgroud)

不完全确定它的作用或含义.它是指针......指向另一个指针吗?

还有以下内容:

 double ***weight;

 // allocate memory for weight
 weight = new double**[numl];
Run Code Online (Sandbox Code Playgroud)

我很困惑:P,任何帮助都表示赞赏.

Nav*_*een 8

new double*[num]是一个双指针数组,即数组的每个元素都是一个double*.您可以使用out[i] = new double;Similar weight是一个数组来为每个元素分配内存double**.您可以使用new double*[num](如果它应该是一个数组double*)为每个权重元素分配内存

  • +1,最佳答案.但是,单独分配每个"double"可能不是一个好主意,特别是对于科学应用.最好分配一个平面的双精度数组,并让所有指针指向该数组的元素. (3认同)