|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 解决malloc问题!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
762
人关注过本帖
标题:
解决malloc问题!
只看楼主
加入收藏
fengtianzhi
等 级:
新手上路
帖 子:17
专家分:0
注 册:2009-8-9
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:7
解决malloc问题!
#include<stdlib.h>
#include <stdio.h>
main()
{
char *s1,*s2,m,a;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;
*s2=20;
m=*s1+*s2;
printf("%d",m);
}
运行的结果是40,小弟真的看不懂求高手解决!
搜索更多相关主题的帖子:
malloc
2009-08-10 11:23
举报帖子
使用道具
赠送鲜花
josen0205
来 自:江苏
等 级:
论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
第
2
楼
收藏
得分:20
s1,s2指向同一个地址,都是malloc返回的地址,*s2 = 20;把s2指向的地址的值改变了;
所以*s1和*s2都是20, 加起来就是40了
只有想不到,没有做不到
2009-08-10 11:35
举报帖子
使用道具
赠送鲜花
fengtianzhi
等 级:
新手上路
帖 子:17
专家分:0
注 册:2009-8-9
第
3
楼
收藏
得分:0
回复 2楼 josen0205
知道了,谢谢你呵呵
2009-08-10 11:38
举报帖子
使用道具
赠送鲜花
guoweiyan
等 级:
论坛游民
帖 子:7
专家分:10
注 册:2009-8-3
第
4
楼
收藏
得分:0
main()
{
char *s1,*s2,m,a;
s2=(char*)malloc(sizeof(char));
s1=(char*)malloc(sizeof(char));
*s1=15;
*s2=20;
m=*s1+*s2;
printf("%d\n",m);
}
你试试看这样行不?
2009-08-10 11:40
举报帖子
使用道具
赠送鲜花
fengtianzhi
等 级:
新手上路
帖 子:17
专家分:0
注 册:2009-8-9
第
5
楼
收藏
得分:0
回复 4楼 guoweiyan
可以了,呵呵谢谢你了,这下理解更透了呵呵
2009-08-10 11:53
举报帖子
使用道具
赠送鲜花
robbenmessi
等 级:
新手上路
帖 子:11
专家分:1
注 册:2008-7-23
第
6
楼
收藏
得分:0
以下是引用
josen0205
在2009-8-10 11:35的发言:
s1,s2指向同一个地址,都是malloc返回的地址,*s2 = 20;把s2指向的地址的值改变了;所以*s1和*s2都是20, 加起来就是40了
既然s1、s2都指向同一个地址,为什么不是都变成*s1=15的值?
2009-08-10 18:36
举报帖子
使用道具
赠送鲜花
robbenmessi
等 级:
新手上路
帖 子:11
专家分:1
注 册:2008-7-23
第
7
楼
收藏
得分:0
刚才蒙住了,是后面的赋值把前边的值覆盖了
2009-08-10 18:40
举报帖子
使用道具
赠送鲜花
灵动心境
等 级:
论坛游民
帖 子:12
专家分:66
注 册:2009-8-1
第
8
楼
收藏
得分:0
赋值从右向左
2009-08-11 21:28
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
解决malloc问题!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018777 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved