首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言,内存无法释放-

2013-01-19 
C语言,内存无法释放-求救啊void ReversStr(char* s){int lenstrlen(s)char* tmp(char*)malloc(sizeof(l

C语言,内存无法释放-求救啊
void ReversStr(char* s)
{
int len=strlen(s);
char* tmp=(char*)malloc(sizeof(len+1));
int i=0;
char* ptr=NULL,*p=tmp;
ptr=s+len-1;
while(len)
{
*p++=*ptr--;
len--;
}
*p='\0';
printf("reversed str=%s\n",tmp);
free(tmp);
}

                            
[解决办法]
malloc中写错了,char *tmp = (char *)malloc(sizeof(char)*(len+1));
[解决办法]
char* tmp=(char*)malloc(len+1);
[解决办法]
char* tmp=(char*)malloc(sizeof(len+1));
相当于malloc(sizeof(int))
你只申请了四个字节
[解决办法]
申请内存的代码写错了:
char* tmp=(char*)malloc(sizeof(char)*len+1));

热点排行