帮小弟我看看有关问题出在哪里?郁闷!

帮我看看问题出在哪里?郁闷!!char*pbnewchar[4]sprintf(pb, %d ,i)CStringsCString(pb)if(pb!NULL

帮我看看问题出在哪里?郁闷!!
char   *pb   =   new   char[4]   ;
sprintf(pb, "%d ",i)   ;
CString   s   =   CString(   pb   )   ;
if(   pb   !=   NULL   )
{
delete[]   pb   ;//到这一步为什么会出错呢,郁闷。
pb   =   NULL   ;
}
return   s   ;

[解决办法]
现在char *pb = new char[15] ;还错吗?