首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么在c++中实现可变长数组的操作

2012-10-15 
求助:如何在c++中实现可变长数组的操作?如下:void main(){int a fun()//通过调用函数fun来取的a的值;in

求助:如何在c++中实现可变长数组的操作?
如下:
void main()
{
  int a = fun();//通过调用函数fun来取的a的值;

  int arr[a];
}

我如何才能实现上面类似的操作呢?在GCC中,以上语句是可以正常编译通过的。
谢谢,望高手指点!

[解决办法]
int *arr = new int[a];
[解决办法]
new一个数组?

用STL的vector?
[解决办法]

探讨

引用:

new一个数组?

用STL的vector?


谢谢!是呀,用vector可以。
如果是复杂的结构体指针的话,如何设置可变长度呢?

[解决办法]
vector::resize

vector作为容器的好处是其操作与具体成员无关
[解决办法]
用STL中的vector容器是最好的选择,直接int arr[a]这样的话,就算编译可以通过,其结果也是不可预料的,目前尚无明确的说法和结论。
[解决办法]
探讨

引用:

引用:

new一个数组?

用STL的vector?


谢谢!是呀,用vector可以。
如果是复杂的结构体指针的话,如何设置可变长度呢?

vector<复杂结构体> 。。。。

[解决办法]
探讨

用STL中的vector容器是最好的选择,直接int arr[a]这样的话,就算编译可以通过,其结果也是不可预料的,目前尚无明确的说法和结论。

[解决办法]
探讨

引用:

引用:

其中一个简单的实现了。
还有一个复杂的:
例如:
struct aa *pAA = NULL;

pAA = new struct aa[a];

假如有一个函数:
bb(struct **);

那么,
for(int i=0; i<a; i++)
bb(&amp;amp;amp;pAA[i]);错误,……

热点排行