A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 钟楼上的猫 高级黑马   /  2014-12-7 13:01  /  1065 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚刚看了一点视频,老师讲分配内存地址是由大到小分配的,那比如:
int a;
int b;
这样a的地址应该比b的大对吧
然后a如果被释放了
这时又定义了一个
int c;
那c的地址应该是原来a的地址对吧?

7 个回复

倒序浏览
不对吧,b在c的前面被定义,b的地址应该比c的要大吧,不知道我说的对不对~:P
回复 使用道具 举报
邹志鹏 发表于 2014-12-7 13:12
不对吧,b在c的前面被定义,b的地址应该比c的要大吧,不知道我说的对不对~ ...

额,我把a的地址释放了,定义c后应该会找打到原先a的地址才是最大的,我是这么理解,等高手来。。。。
回复 使用道具 举报
不确定的,因为现在电脑都是多道批处理的,a所占据的内存,有可能在他被释放的时候就被计算机分配出去了,那样的话c的地址就不是a的了。这个你自己可以用printf("%d",&c);看一下c的 地址,比较一下嘛,
回复 使用道具 举报
任冰冰 发表于 2014-12-7 13:21
不确定的,因为现在电脑都是多道批处理的,a所占据的内存,有可能在他被释放的时候就被计算机分配出去了, ...

可是我一时写不出来我自己说的这种情况。。。。:L
回复 使用道具 举报
钟楼上的猫 发表于 2014-12-7 13:15
额,我把a的地址释放了,定义c后应该会找打到原先a的地址才是最大的,我是这么理解,等高手来。。。。 ...

按照你的意思就是说,每定义一个新的变量,系统都会重头开始遍历,找到目前最大的内存地址分配给它?这个还真不知道是怎样的机制
回复 使用道具 举报
任冰冰 发表于 2014-12-7 13:21
不确定的,因为现在电脑都是多道批处理的,a所占据的内存,有可能在他被释放的时候就被计算机分配出去了, ...

P%!!!!!!!!!!!!!!!!
回复 使用道具 举报
米匠 中级黑马 2014-12-7 20:18:12
8#
不对吧,应该再b上边吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马