delete []result;
result = NULL;
你把这两句颠倒一下
result = NULL;
delete []result;
就好了
原因 需要先将result指针置空 然后才能删除堆上分配给result的地址
delete result;不要加[],加了[]代表释放的是一个指针数组,其次,%20是一个保留标识符,要保存一个%,得输入两个连续的%%
result += (len + spacenum * 2 ); //而不是result += (len + spacenum * 2 +1);
另外Replace这样实现不就可以了
void Replace(char *ori)
{
while(*ori)
{
if(*ori == ' ')printf("%20");
else putchar(*ori);
++ori;
}
}
不要这句了delete []result;