首页
社区
课程
招聘
[求助]这段代码,在执行free函数时会崩溃。这是为什么????
发表于: 2012-9-28 07:56 4930

[求助]这段代码,在执行free函数时会崩溃。这是为什么????

2012-9-28 07:56
4930
#include <stdio.h>
#include <malloc.h>
#include <string.h>

void est(char**);

void main(int argc,char** argv)
{
        char*        hi;

        est(&hi);
        free(hi);
}

void est(char** ok)
{
        *ok=(char*)malloc(sizeof(char)*strlen("hello world!!!"));

        strcpy(*ok,"hello world!!!");

        return;
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 112
活跃值: (56)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
*ok=(char*)malloc(sizeof(char)*strlen("hello world!!!")+1);
         memset(*ok,0,sizeof(char)*strlen("hello world!!!")+1);
2012-9-28 08:28
0
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
strcpy越界了
2012-9-28 08:55
0
雪    币: 434
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
执行free没有发生崩溃

如果malloc和free使用运行时版本不同可能发生崩溃
2012-9-28 09:13
0
雪    币: 608
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
字符串有个 \0结尾,你申请空间时要多申请一个
2012-9-28 09:20
0
雪    币: 213
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢大家!!!
2012-9-28 09:24
0
游客
登录 | 注册 方可回帖
返回
//