【发布时间】:2012-10-12 16:11:54
【问题描述】:
我想在不使用 new 运算符的情况下在函数中分配可变大小的 2D 数组,以便该 2D 数组可用于同一文件中的其他函数。
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;
}
}
函数的执行顺序是draw -> assign -> display
这个问题之前可能已经问过了。 但我的问题是.. -> 我无法在全局分配函数之外声明数组,因为大小的值是未知的。 -> 我不能在“显示”函数中使用“一个”数组,因为它的范围仅限于“分配”函数。
而且我也不想使用 new 或 malloc 运算符。 如果有任何替代方案,请提供帮助。
【问题讨论】:
-
std::vector听起来很完美。 -
您是否关心
new或malloc是否在幕后被调用? -
std::vector 非常适合您的目的。您可以创建一个大小为零的数组,然后使用 resize(int size) 方法更改其大小。 STL 提供了其他方法来管理数组/向量。