这个程序为何不能实现反序输出呢

这个程序为什么不能实现反序输出呢?
#include<iostream>
#include<string>
using namespace std;
void ReversStr(char* s)
 {
 int len=strlen(s);
 char* p=new char[len+1];

 char* ptr=s+len-1;

 while(len)
 {
 *p++=*ptr--;
 len--;
 }
 *p='\0';
 cout<<p<<endl;
 free(p);
 }
int main()
{
ReversStr("zhouchichi");



return 0;

}

------解决方案--------------------
路过,接分,还是菜鸟级别
------解决方案--------------------
p 指向字符串的最后 能输出就怪了