| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1221 人关注过本帖
标题:小白+环保问题:关于动态分配 请赐教!!
只看楼主 加入收藏
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
结帖率:98.15%
收藏
已结贴  问题点数:50 回复次数:28 
小白+环保问题:关于动态分配 请赐教!!
假设 int *p;
     p=new int[num];   //num是变量
现在num=num+1
那么如何添加新元素进数组里面呢?
我想到另开辟一个 q= new int[num+1]
然后q=p
但是会花时间和空间
有没直接方法在后面直接添加的???
请赐教!!!







   
搜索更多相关主题的帖子: 动态 环保 
2010-11-10 20:00
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
直接添加?你直接用不久可以了,C语言的数组可以越界使用的。

不过,这样是会出问题的,是C程序执行原理的问题,因为你根本不知道后面的内存空间是不是已经被占用了。

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-11-10 20:07
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
所以就不能直接用啊 看看有什么办法?

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-10 20:42
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
好多分呀

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-11-10 20:47
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
就算多也不给你

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-10 20:47
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:10 
c语言有一个库函数:
# include <stdlib.h>
recalloc(char *source , size_t number) ;

愿用余生致力编程
2010-11-10 20:48
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
这个函数什么意思?

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-10 20:55
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
回复 6楼 我菜119
好古老的函数

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-11-10 21:02
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
realloc函数的原型为:
    void *realloc(void *ptr,size_t size);


    第一个参数ptr是已经由malloc或calloc函数分配的存储区的指针,而realloc函数的作用是对p所指向的存储区进行重新分配即改变大小;第二个参数size是重新分配的存储区的大小(字节数)。

如果他是扩大内存,那么原来这块内存的内容依然保留,新增加的内存添加到原来内存的后面,新曾内存并未以任何方法初始化。

如果他是缩小内存,那么该内存的尾块部分被拿掉,未拿掉的依然保存。

此函数返回值是新存储区的首地址;如果没有足够的内存空间则返回NULL,此时旧存储区内容不变。


   如果原先的内存块无法改变大小,realloc将分配另一块正确大小的内存,并把原先那块内存的内容复制到新的块上。因此,在使用realloc之后,就不能在使用指向旧内存的指针,而是应该用realloc返回的新指针。




   如果realloc函数的第一个参数是NULL,那么它的作用就和malloc一模一样!


本文来自CSDN博客,转载请标明出处:http://blog.

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-10 21:07
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
谢谢 高手果然是高手  其实真的很好解决

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-10 21:09
快速回复:小白+环保问题:关于动态分配 请赐教!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044626 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved