【发布时间】:2015-02-15 16:37:44
【问题描述】:
假设我们有以下创建一个 10 x 10 二维数组并将第一个单元格设置为 100:
class twoD{
int **p = new int*[10];
public:
twoD(){
*p = new int[10];
p[0][0] = 100;
}
};
为什么会这样,但下面的不行。
class twoD{
int **p = new int*[10];
*p = new int[10];
public:
twoD(){
p[0][0] = 100;
}
};
【问题讨论】:
-
当然这与“二维数组”无关。或指针。
-
这些都没有真正以正确初始化的二维数组结束。你真的希望你的构造函数做这样的事情:
for (int i = 0; i < 10; ++i) { p[i] = new int[10]; },你最好有一个析构函数来匹配,否则你会到处泄漏内存。
标签: c++ class pointers dynamic