初始化多维数组指针****

时间:2014-10-20 19:00:37

标签: c++ pointers multidimensional-array new-operator

我想将指针(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();行崩溃。

1 个答案:

答案 0 :(得分:0)

您的问题可能是[]*运营商的优先级(请参阅this answer)。例如,在您的情况下,表达式*_bars[i]的评估方式如下:

*(_bars[i]) = ....

由于_bars[]中只有一个元素,您遇到_bars[1]的“问题”。与*_bars[i][j]相同。

但实际上,请使用std::array<>std::vector<>这样的内容。