|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ malloc函数 请解释一下!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
833
人关注过本帖
标题:
malloc函数 请解释一下!
只看楼主
加入收藏
雪色朝阳
等 级:
论坛游民
帖 子:36
专家分:43
注 册:2010-3-10
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:10 回复次数:9
malloc函数 请解释一下!
#include<stdlib.h>
main()
{
char *p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf("%s%s",p,q);printf("%s%s\n",p,q);
}
从键盘输入abc def<回车>,则输出结果是多少?(答案是def def)为什么?
请帮忙解释一下红色部分!谢谢!
搜索更多相关主题的帖子:
malloc
解释
函数
2010-03-26 17:12
举报帖子
使用道具
赠送鲜花
秀痘魔导士
等 级:
蜘蛛侠
威 望:
6
帖 子:250
专家分:1150
注 册:2009-12-23
第
2
楼
收藏
得分:2
分配20个char大小的堆空间
p,q指向相同的地址空间,如果你想输出abc def,这么写
#include<stdlib.h>
#include<stdio.h>
int main()
{
char *p,*q;
p=(char*)malloc(sizeof(char)*20);
q=(char*)malloc(sizeof(char)*20);
scanf("%s%s",p,q);
printf("%s%s\n",p,q);
free(p);
free(q);
}
2010-03-26 17:19
举报帖子
使用道具
赠送鲜花
书呆
等 级:
论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
第
3
楼
收藏
得分:4
p=(char*)malloc(sizeof(char)*20);// 分配20个字节的存储空间,p指向空间的首地址
q=p;// q也指向空间的首地址
scanf("%s%s",p,q);// 输入abc def,因为p,q指向的地址相同,所以abc被def覆盖
沉醉东风月下读。柴门闭,莫管客来无。
2010-03-26 17:21
举报帖子
使用道具
赠送鲜花
雪色朝阳
等 级:
论坛游民
帖 子:36
专家分:43
注 册:2010-3-10
第
4
楼
收藏
得分:0
回复 3楼 书呆
为什么abc会被def所覆盖呢,而不是def被abc所覆盖呢?
2010-03-26 17:41
举报帖子
使用道具
赠送鲜花
秀痘魔导士
等 级:
蜘蛛侠
威 望:
6
帖 子:250
专家分:1150
注 册:2009-12-23
第
5
楼
收藏
得分:2
以下是引用
雪色朝阳
在2010-3-26 17:41:00的发言:
为什么abc会被def所覆盖呢,而不是def被abc所覆盖呢?
后输入的覆盖先前输入的
2010-03-26 17:42
举报帖子
使用道具
赠送鲜花
雪色朝阳
等 级:
论坛游民
帖 子:36
专家分:43
注 册:2010-3-10
第
6
楼
收藏
得分:0
回复 5楼 秀痘魔导士
那能不能使前输入的覆盖后输入的呢?比如说输出的是abcabc
2010-03-26 17:45
举报帖子
使用道具
赠送鲜花
evilperfect
等 级:
新手上路
帖 子:5
专家分:3
注 册:2010-3-26
第
7
楼
收藏
得分:1
回复 6楼 雪色朝阳
scanf("%s%s",p,q);
你先在这个地方放了个苹果,然后在相同的地方放了个梨子,试问你可以伸手拿到的是苹果还是梨子?
2010-03-26 21:36
举报帖子
使用道具
赠送鲜花
apull
来 自:三体星系
等 级:
版主
威 望:
216
帖 子:1506
专家分:9241
注 册:2010-3-16
第
8
楼
收藏
得分:1
以下是引用
evilperfect
在2010-3-26 21:36:38的发言:
scanf("%s%s",p,q);
你先在这个地方放了个苹果,然后在相同的地方放了个梨子,试问你可以伸手拿到的是苹果还是梨子?
说的不错。
都是对同一个内存地址赋值。
2010-03-26 22:14
举报帖子
使用道具
赠送鲜花
mghxz252
等 级:
论坛游民
帖 子:40
专家分:60
注 册:2010-1-18
第
9
楼
收藏
得分:0
又学会了一个
,谢谢大家。
2010-03-27 11:49
举报帖子
使用道具
赠送鲜花
drhp123
等 级:
新手上路
帖 子:11
专家分:0
注 册:2010-3-1
第
10
楼
收藏
得分:0
我觉得,p=q说明他们公用同一块内存空间,先放abc,内存中是abc,然后放入def,则内容变了,输出其实是两次输出同一地址中的内容.
2010-03-30 23:01
举报帖子
使用道具
赠送鲜花
10
1/1页
1
快速回复:
malloc函数 请解释一下!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017855 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved