【发布时间】:2018-11-08 12:18:37
【问题描述】:
我在初始化指向指针的指针向量时遇到了麻烦(无论如何我都不应该这样做,但请原谅我)。
我基本上有一个指针z 指向一个包含0 的变量,现在我想初始化一个包含指向该指针的指针的矩阵。
void example(int nrow, int ncol) {
int zero = 0;
int* z = &zero;
int size = nrow * ncol;
vector<int **> pointerMatrix(size);
for (int i = 0; i < size; i++) {
int** a = &z;
pointerMatrix.push_back(a);
}
//following line throws an exception:
cout << **pointerMatrix[0] << endl;
}
现在上面的代码抛出了异常,显然指针指向的地址下什么都找不到了。
有人看到我的错误吗?
【问题讨论】:
-
pointerMatrix.size()在循环之前已经是size。我打电话给 TYPO。 -
为什么只在第一级使用向量,似乎你有一个额外的指针,它是一个 3 维张量 - 不会 vector
> 解决你的问题而不诉诸原始指针放在首位? -
@darune OP 是一个三星级程序员 8-)
-
@LogicStuff 如此真实