黑马程序员技术交流社区

标题: 关于内存地址 [打印本页]

作者: 钟楼上的猫    时间: 2014-12-7 13:01
标题: 关于内存地址
刚刚看了一点视频,老师讲分配内存地址是由大到小分配的,那比如:
int a;
int b;
这样a的地址应该比b的大对吧
然后a如果被释放了
这时又定义了一个
int c;
那c的地址应该是原来a的地址对吧?

作者: 邹志鹏    时间: 2014-12-7 13:12
不对吧,b在c的前面被定义,b的地址应该比c的要大吧,不知道我说的对不对~:P
作者: 钟楼上的猫    时间: 2014-12-7 13:15
邹志鹏 发表于 2014-12-7 13:12
不对吧,b在c的前面被定义,b的地址应该比c的要大吧,不知道我说的对不对~ ...

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

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

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

P%!!!!!!!!!!!!!!!!
作者: 米匠    时间: 2014-12-7 20:18
不对吧,应该再b上边吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2