标题:求助:free的问题
只看楼主
PoohBoon
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-16
 问题点数:0 回复次数:3 
求助:free的问题
#include <string.h>
#include <stdio.h>
#include <malloc.h>
char* strcatme2(char *to,char *from)
{
    char* p = (char*)malloc(sizeof(char)*(strlen(to)+strlen(from)));
    char* res = p;
    if (!p) return NULL;
    
    while(*p++=*to++);
    p--;
    while(*p++=*from++);
    return res;
}  

void main()
{
    char   a[100];
    char   b[100];
    char* res;
    
    printf("input string a:");
    scanf("%s",a);
    
    printf("please input string b:");  
    scanf("%s",b);
        
    res = strcatme2(a,b);
        
    printf("result %s",res);
    free(res);//?????????????
}
最后的这个free会引起Debug Error:after nomal block(#54)。
这是为啥捏!?
(我用的是VC6.0编译器)
恳求大家的帮助!!!!
搜索更多相关主题的帖子: free 
2008-11-16 00:18
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
没有为res分配内存

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-11-16 00:28
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
或者内存分配得太少

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-11-16 00:35
PoohBoon
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-16
得分:0 
OOO明白了……原来在strcatme2中要多malloc一个敖。
谢拉!
2008-11-16 11:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-244522-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.417473 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved