读书人

C语言内存无法释放-

发布时间: 2013-01-19 11:41:36 作者: rapoo

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));

读书人网 >C语言

热点推荐