当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [求助]问一个内存分配的问题
帖子发表于 : 2010-07-03 15:01 
头像

注册: 2007-04-11 10:39
帖子: 319
送出感谢: 0 次
接收感谢: 0 次
linux下有很多c写的程序,都会对内存进行操作.例如malloc.
然后,很多c程序都会使用到指针.
假设我们有一段内存区域1 2 3 4 5 6 7 8 9 10
指针a指向了1,然后大小是4,即指针a占据了1 2 3 4
指针b指向了7,然后占据了7 8 9 10
此时,我对指针a用realloc重新分配,分配大小1000.

问题1:因为紧跟指针a的区域被指针b占据了,后续大小不足,那么此时是不是会在其它有充足空间的地方,分配个1000的空间给指针a,并把1 2 3 4的内容复制过去呢?
问题2:很多需要用到指针作为参数的函数,例如memcpy,遇到这样的情况,它们全部(重点是全部)是不是也是一样的操作呢?

用gdb调试了一下,发现问题1 是会复制过去的
但是我不太确定是不是所有同类型函数都这样.


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [求助]问一个内存分配的问题
帖子发表于 : 2010-07-03 16:36 
头像

注册: 2008-04-07 17:36
帖子: 4010
地址: 泰安人在阜新
送出感谢: 0 次
接收感谢: 0 次
问题1 : 是的
代码:
man realloc


问题2:不是,这个 memcpy 就不是这样的。

用到那个函数就man一下。

realloc 只是一个特例。


_________________
宇宙数学物理 sssssssss Ubuntu 桌面培训 sssssssss 问打包的问题之前先看
和我一样的新手请看,我看过了,腰不酸了,腿不疼了,上楼也有劲了
想去IRC的点这里——一个比QQ群好N多的东西


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [求助]问一个内存分配的问题
帖子发表于 : 2010-07-03 16:42 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
历史上,我就不记得使用过realloc。
也不明白为什么需要他。


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [求助]问一个内存分配的问题
帖子发表于 : 2010-07-03 19:33 

注册: 2009-04-03 15:10
帖子: 1831
送出感谢: 0 次
接收感谢: 0 次
我记得是最好不要使用realloc
使用malloc然后把原内存拷贝过去,再交换指针。
因为在我的电脑上,有一次用realloc完全不起作用……


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [求助]问一个内存分配的问题
帖子发表于 : 2010-07-10 11:00 
头像

注册: 2007-04-11 10:39
帖子: 319
送出感谢: 0 次
接收感谢: 0 次
额..谢谢ls几位的回答..
发完这个帖子我就断网了... :em06 :em06


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [求助]问一个内存分配的问题
帖子发表于 : 2010-07-11 12:46 
头像

注册: 2009-08-17 3:52
帖子: 1099
送出感谢: 0 次
接收感谢: 1
eexpress 写道:
历史上,我就不记得使用过realloc。
也不明白为什么需要他。


_________________
We believe that the internet should be public, open and accessible.
软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。
iceplayer! linux音乐新体验~ 最新版本4.0.5-20110520已更新!http://forum.ubuntu.org.cn/viewtopic.php?f=137&t=252461
想要iceplayer 测试版麼?加入QQ群80071264吧,在code.google也可找到
http://www.iceplayer.org/
http://jasy.ice.blog.163.com/


页首
 用户资料  
 
7 楼 
 文章标题 : Re: [求助]问一个内存分配的问题
帖子发表于 : 2010-07-11 13:56 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
slax 写道:
eexpress 写道:
历史上,我就不记得使用过realloc。
也不明白为什么需要他。


realloc 成功的话可以节省一些复制开销


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译