麻烦看下,这个程序哪有问题?内存错在哪了?谢谢
//将字符串中连续的字母归并为一个,例如aaabbcdd -> abcd
void Fun(const char *a)
{
if(a == NULL)
return;
int len = sizeof(a);
char *p = new char[len];
if(p == NULL)
return;
memset(p,0,len);
while((*a) != '\0')
{
int i = 0;
while(*(p+i) != 0)
{
if(*(p+i) == *a)
break;
i++;
}
if(i==strlen(p))
*(p + i) = *a;
a++;
}
cout <<p;
delete []p;
p = NULL;
}
[解决办法]
int len = sizeof(a);
char *p = new char[len];
int len = strlen(a);
char *p = new char[len+1];