搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 解决malloc问题!
标题:
解决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
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-282165-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.564544 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved