【发布时间】:2015-01-17 10:32:37
【问题描述】:
我正在尝试使用 c++11 在类变量中进行多维数组分配。无法使用“float **a=new float[][]”,尝试使用 auto,但仍然无法正常工作。有什么想法可以解决,绅士!
#include <string.h>
class abc{
public:
float **a;
abc(){
auto a=new float[10][10];
this->a=a;
}
};
int main(){
abc * a=new abc();
return 1;
}
这是错误结果: http://coliru.stacked-crooked.com/a/3d69bcd38f4bbf2a
【问题讨论】:
-
请不要。只是不要。改用
std::array或std::vector。 -
我不是专业人士,只是在做一些简单的代码。在 fortran 中,可以使用 allocate(a(n,n,n,n)) 来完成。在这一点上,似乎 c 和 c++ 需要更多代码。
-
如果您不是专业人士,那么最好的理由可能是不使用
new。std::array和std::vector更易于使用且更安全。为了正确使用new,你需要相当多的C++知识。 -
非常感谢,PC。会试试的!