搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ malloc函数 请解释一下!
标题:
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
来 自:三体星系
等 级:
版主
威 望:
185
帖 子:1404
专家分:8479
注 册: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
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-300624-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.400092 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved