C语言,内存无法释放-
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));