标题:出一小题,考下内存堆栈
取消只看楼主
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
结帖率:100%
 问题点数:0 回复次数:4 
出一小题,考下内存堆栈
程序代码:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
int main()
{
    char d[]="456789";
    char s[]="123";
    strcpy(s,d);
    printf("%s\n%s\n",d,s);
    return 0;
}


不用编译器,写出这段代码的输出。
搜索更多相关主题的帖子: 堆栈 内存 
2010-12-18 15:13
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
就从你在之前那个帖子里面贴的内容,我读定你用了编译器。

你解释下为什么是这个答案。
2010-12-18 15:23
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
你debug了多久才得出的答案。

现在你不说d分配了8个空间了吧?
2010-12-18 15:47
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
以下是引用我菜119在2010-12-18 15:59:49的发言:

难道我给出的答案不是吗??debug了多久??哈哈哈!真的可笑呀,你说对久就多久吧!!!

和一个无聊之人聊了点无聊的话题!!嘎嘎!



第一,我不无聊

第二,以你现在的水平跟我比还差一大截. 但是从你debug的能力我相信,你有很大的发展空间。至少你不会再告诉d是分配了8个空间。

第三, 我如果再问你什么时候内存对齐用到分配8个空间的问题,你又未必能答出来了。或者要再debug很久才能给出答案。
2010-12-18 16:04
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
以下是引用无尽苍穹在2010-12-18 16:01:39的发言:


原理正如4楼所说,但结果还是与CPU有关
64位下的结果



先看看你的cpu是big ending 还little ending.
2010-12-18 16:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-329250-1-1.html




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

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