社区
C++ 语言
帖子详情
求助:如何在c++中实现可变长数组的操作?
fengbingchun
博客专家认证
2012-09-26 04:05:11
如下:
void main()
{
int a = fun();//通过调用函数fun来取的a的值;
int arr[a];
}
我如何才能实现上面类似的操作呢?在GCC中,以上语句是可以正常编译通过的。
谢谢,望高手指点!
...全文
254
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];
维度及长度均可任意变形的动态数组
一、维度及长度均可任意变形的动态数组概述 收藏 近日,有同事需要设计一个可自由变形的多维数组,苦思数日,不得其解,
求助
于我。于是我帮他写了一个可自由改变维度及长度的数组ADT。后来想,网上应该也有人需要这种东西吧,何不放到博客上来,让有此需要的朋友也一同来参考参考。于是就将开始的3个函数扩展为20个函数。鉴于时间仓促,源码一定有很多不完善的地方,如果遇到哪些牛人有兴趣对其进行改进,更求之
C++
学习:在
C++
中
创建持久对象
持久对象(persistent objects)广泛应用于游戏、分布式数据库系统、多媒体以及图形应用程序
中
。目前
C++
并不直接支持持久性(persistence)(但有一些在
C++
未来版本
中
添加持久性和反射(reflection)的建议)。持久对象可以在创建它的程序的作用域之外保持自身状态。把对象写入一个文件并在以后重建之,或者把对象传送到一台远程机器,就是这样的例子。对持久性的支持并不象第一眼看
一、维度及长度均可任意变形的动态数组概述
近日,有同事需要设计一个可自由变形的多维数组,苦思数日,不得其解,
求助
于我。于是我帮他写了一个可自由改变维度及长度的数组ADT。后来想,网上应该也有人需要这种东西吧,何不放到博客上来,让有此需要的朋友也一同来参考参考。于是就将开始的3个函数扩展为20个函数。鉴于时间仓促,源码一定有很多不完善的地方,如果遇到哪些牛人有兴趣对其进行改进,更求之不得了。 我将此ADT称为Dyna
深信服面试准备:C/
C++
软件开发工程师(云计算、网络安全方向)
1.
c++
有哪些容器,介绍一下。说说你对STL的了解,等等。 1.序列式:vector(动态数组,当前大小到达数组容量时进行2倍扩容,以此
实现
动态数组的效果)、list(双向链表)、 deque(双端队列)(将固定大小的多个数组用指针连接,以此
实现
首位插入和删除的功能) 2.关联式:(无序)unordered_map/set (底层是hash),特点是查找的时间复杂度是O(1) (有序)map/set (底层是红黑树) 引申:为什么是红黑树不是平衡二叉树 ...
搬砖:2018
C++
开发工程师面试题大合集(持续更新)
2018
C++
开发工程师面试题大合集(持续更新) 2018年07月19日 15:26:16 Damage233 阅读数:9159 https://blog.csdn.net/Damage233/article/details/81116115 (一)2018.4 拼多多实习服务端 1、 一个
C++
源文件从文本到可执行文件经历的过程 对于C/
C++
编写的程序,从源代码到可执行文件,一...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章