查看: 2280|回复: 2

[其他] freescale 动态分配问题 ,请帮解答

[复制链接]

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
9
最后登录
1970-1-1
发表于 2012-8-21 19:25:02 | 显示全部楼层 |阅读模式
unsigned char *p;
unsigned char n=0;
if(p==NULL)
{
p=calloc(10,sizeof(char));
if(p!=NULL) *p=1;
free(p);
if(p==NULL) n=2;
}
~我刚学freescale,我简单写了上面程序,调试发现,一开始指针p是空指针,进入if语句,用calloc()分配 10个 char类型内存,也可以执行“*p=1;” ,最后我用free()释放指针p指向的内存,释放后,p不是变回空指针吗?为什么不执行“n=2”??释放后,*p还是1,内容不变??
我知道答案 目前已有1人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-8-22 16:21:26 | 显示全部楼层

    RE:freescale 动态分配问题 ,请帮解答

    释放了p,但是没有清除内存,而这个时候p应该还是指向你建立的内存位置.你仿真看一下p指的内存。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    9
    最后登录
    1970-1-1
     楼主| 发表于 2012-8-25 22:28:33 | 显示全部楼层

    回复:freescale 动态分配问题 ,请帮解答

    回复第 2 楼 于2012-08-22 16:21:26发表:
    释放了p,但是没有清除内存,而这个时候p应该还是指向你建立的内存位置.你仿真看一下p指的内存。 

    谢谢~~
    我仿真过,free()后,指针p内容还在,内容不变,我以为free()释放了,p就变回空指针了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 15:59 , Processed in 0.095378 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表