我想将指针(Bar *)存储在2维的多维数组中。我想从指针访问这个数组。 所以我想初始化一个** foo [] [](或**** fo)。
Bar ****_bars; // declaration
int n, m; // dimensions size
_bars = new Bar ***;
*_bars = new Bar **[n];
for (int i = 0; i < n; i++) {
*_bars[i] = new Bar *[m];
for (int j = 0; j < m; j++) {
*_bars[i][j] = new Bar();
}
}
当i = 0且j = 1时,我的应用在第*_bars[i][j] = new Bar();
行崩溃。
答案 0 :(得分:0)
您的问题可能是[]
和*
运营商的优先级(请参阅this answer)。例如,在您的情况下,表达式*_bars[i]
的评估方式如下:
*(_bars[i]) = ....
由于_bars[]
中只有一个元素,您遇到_bars[1]
的“问题”。与*_bars[i][j]
相同。
但实际上,请使用std::array<>
或std::vector<>
这样的内容。