我想在函数中分配可变大小的二维数组而不使用 new 运算符,以便该二维数组可用于同一文件中的其他函数。
void draw(int i)
{ size=i; }
void assign(char symbol)
{
char one[size][size];
/// ... Assigning values to one ...
}
void display()
{ /// Displaying values of one[size][size]
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
cout<<one[i][j];
cout<<endl;
}
}
函数的执行顺序是绘制->分配->显示
这个问题可能很早就被问过。
但我的问题是..
-> 我无法在全局分配函数之外声明数组,因为大小值未知。
-> 我不能在“显示”函数中使用“一个”数组,因为它的范围仅限于“分配”函数。
而且我也不想使用 new 或 malloc 运算符。
如果有任何替代方案,请帮忙。
C++ 不支持堆栈分配的可变长度数组,例如 C99。你应该使用std::vector<T>
反而。如果你真的想使用堆栈分配,你可以使用alloca()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)