社区
C++ 语言
帖子详情
求助:如何在c++中实现可变长数组的操作?
fengbingchun
博客专家认证
2012-09-26 04:05:11
如下:
void main()
{
int a = fun();//通过调用函数fun来取的a的值;
int arr[a];
}
我如何才能实现上面类似的操作呢?在GCC中,以上语句是可以正常编译通过的。
谢谢,望高手指点!
...全文
253
13
打赏
收藏
求助:如何在c++中实现可变长数组的操作?
如下: void main() { int a = fun();//通过调用函数fun来取的a的值; int arr[a]; } 我如何才能实现上面类似的操作呢?在GCC中,以上语句是可以正常编译通过的。 谢谢,望高手指点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yisikaipu
2012-09-26
打赏
举报
回复
[Quote=引用楼主 的回复:]int arr[a];[/Quote]
这是C99特性,C++标准不支持
taodm
2012-09-26
打赏
举报
回复
楼主,既然你学C++了,就直接vector吧,别折腾了
图灵狗
2012-09-26
打赏
举报
回复
除了开辟数组之外,struct aa本身也是需要分配空间的,另外bb函数用一级指针就好。
fengbingchun
2012-09-26
打赏
举报
回复
其中一个简单的实现了。
还有一个复杂的:
例如:
struct aa *pAA = NULL;
pAA = new struct aa[a];
假如有一个函数:
bb(struct **);
那么,
for(int i=0; i<a; i++)
bb(&pAA[i]);错误,改如何修改呢?
谢谢!
图灵狗
2012-09-26
打赏
举报
回复
用STL中的vector容器是最好的选择,直接int arr[a]这样的话,就算编译可以通过,其结果也是不可预料的,目前尚无明确的说法和结论。
fengbingchun
2012-09-26
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
引用 6 楼 的回复:
引用 4 楼 的回复:
用vector<int>...
谢谢!如果是复杂的结构体指针呢
结构体指针的长度也可以用new进行动态分配,但是new完之后就不能再改变这个长度的值了。如果在后续有需要改变这个长度的话,建议用STL库的vector。比如你自定义结构体类型为class type{}; 那么可以vector<type>
===……
[/Quote]
谢谢!
zhaoZero41
2012-09-26
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 4 楼 的回复:
用vector<int>...
谢谢!如果是复杂的结构体指针呢
[/Quote]
结构体指针的长度也可以用new进行动态分配,但是new完之后就不能再改变这个长度的值了。如果在后续有需要改变这个长度的话,建议用STL库的vector。比如你自定义结构体类型为class type{}; 那么可以vector<type>
===================================================
我也变成复制粘贴党了
fengbingchun
2012-09-26
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
用vector<int>...
[/Quote]
谢谢!如果是复杂的结构体指针呢
fengbingchun
2012-09-26
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
还开了两个贴,有分!
[/Quote]
哈哈,不是,浏览器出问题了
珍惜生命远离CPP
2012-09-26
打赏
举报
回复
用vector<int>...
fengbingchun
2012-09-26
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
int *arr = new int[a];
[/Quote]
谢谢!
dhdahai
2012-09-26
打赏
举报
回复
还开了两个贴,有分!
zhaoZero41
2012-09-26
打赏
举报
回复
int *arr = new int[a];
c++
与人工智能
1、
C++
程序设计技术与计算机软件行业发展趋势介绍 2、
C++
技术与人工智能在主流行业
中
的已有应用 3、从算法到人工智能::如何真正
实现
随机生成?来自扫雷游戏的启示 4、智能语音应答的技术解决方案:QQ自动聊天是...
维度及长度均可任意变形的动态数组
一、维度及长度均可任意变形的动态数组概述 收藏 近日,有同事需要设计一个可自由变形的多维数组,苦思数日,不得其解,
求助
于我。于是我帮他写了一个可自由改变维度及长度的数组ADT。后来想,网上应该也有人需要...
C++
学习:在
C++
中
创建持久对象
目前
C++
并不直接支持持久性(persistence)(但有一些在
C++
未来版本
中
添加持久性和反射(reflection)的建议)。持久对象可以在创建它的程序的作用域之外保持自身状态。把对象写入一个文件并在以后重建之,或者把...
一、维度及长度均可任意变形的动态数组概述
近日,有同事需要设计一个可自由变形的多维数组,苦思数日,不得其解,
求助
于我。于是我帮他写了一个可自由改变维度及长度的数组ADT。后来想,网上应该也有人需要这种东西吧,何不放到博客上来,让有此需要的朋友也...
深信服面试准备:C/
C++
软件开发工程师(云计算、网络安全方向)
1.
c++
有哪些容器,介绍一下。说说你对STL的了解,等等。 1.序列式:vector(动态数组,当前大小到达数组容量时进行2倍扩容,以此
实现
动态数组的效果)、list(双向链表)、 deque(双端队列)(将固定大小的多个...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章