| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1089 人关注过本帖
标题:内存分配问题
只看楼主 加入收藏
zhouxy6759
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2009-11-2
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:23 
内存分配问题
#include<stdio.h>
#include<string.h>
int main()
{
   char s[]="123";
   char d[]="12345";
   renturn 0;
}
我调试下这个程序,发现s的地址比d的地址还大6字节,也就是说给d分配内存的时候,在s的前面分配的,这是为什么?请高人指点,谢谢
搜索更多相关主题的帖子: 内存 分配问题 
2010-12-18 13:35
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:4 
内存堆栈的调用   栈是后进先出的数据结构
由高地址向低地址生长
char s[]="123";
首先先向低地址方向生长4个字节
分配4个字节存放123'/0'这个字符串
然后同样的道理  6个字节存放12345'/0'这个字符串
楼主明白?

                                         
===========深入<----------------->浅出============
2010-12-18 13:46
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:1 
按照楼上的说法,先压 s,再压d,也应该是s比d大4,而不是大6.
2010-12-18 13:58
zhouxy6759
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2009-11-2
收藏
得分:0 
明白了,谢谢
2010-12-18 14:06
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用zhouxy6759在2010-12-18 14:06:36的发言:

明白了,谢谢


我怀疑你是不是真明白了。
2010-12-18 14:16
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
以下是引用Devil_W在2010-12-18 13:58:29的发言:

按照楼上的说法,先压 s,再压d,也应该是s比d大4,而不是大6.

貌似有这么一说~,不过你能不能给个详细解释呢
2010-12-18 14:25
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用遮天云在2010-12-18 14:25:42的发言:


貌似有这么一说~,不过你能不能给个详细解释呢



问问楼主,他不是已经懂了。
2010-12-18 14:32
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 7楼 Devil_W
呃,肯定你有高见,是不是内存对齐问题,以我现在的水平,对这方面确实我不了解,麻烦你给讲解下哈
2010-12-18 14:35
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用遮天云在2010-12-18 14:35:48的发言:

呃,肯定你有高见,是不是内存对齐问题,以我现在的水平,对这方面确实我不了解,麻烦你给讲解下哈



讲出来,就么的意思了。
2010-12-18 14:44
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 9楼 Devil_W
呃,这个就是你个人的意愿了,讲出来在下就多学点知识
2010-12-18 14:49
快速回复:内存分配问题
数据加载中...
 
   



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

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