我想创建一个在C++中返回连续2D数组的函数.
使用以下命令创建阵列不是问题:
int (*v)[cols] = new (int[rows][cols]);
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何将此数组作为函数的常规类型返回.功能是:
NOT_SURE_WHAT_TYPE create_array(int rows, int cols)
{
int (*v)[cols] = new (int[rows][cols]);
return v;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了双*[]和双**,两者都不起作用.我不想使用double*,因为我想从外部访问这个数组作为2D数组.
相关问题:如何使用new在C++中声明二维数组?
有没有相关的问题
vector< vector<int> > v(m, vector<int>(n));
Run Code Online (Sandbox Code Playgroud)
写得更安全:
vector< vector<int> > v(m);
for (size_t i=0; i<m; i++)
v[i].resize(n);
Run Code Online (Sandbox Code Playgroud) auto data = new char[480][640][3]();
char data = new char[480][640][3]();
Run Code Online (Sandbox Code Playgroud)
第一个作品。第二个没有。为什么?auto 不是应该用初始化器的类型替换自身吗?