关于delete的问题!请大侠指教
洗洗睡去 2008-02-19 03:53:51 小弟写了个很简单的求字符串子串的程序,如下
char *SubStr(char *Str,int StartPos,int Len)
{//入口参数为原字符串,子串起始位置和长度
char *p = NULL;
int EndPos;
int i;
int j;
EndPos = StartPos + Len - 1;
StartPos--;
p = new char[Len];
for (i=StartPos,j=0; i<=EndPos; i++,j++)
{
*(p+j) = *(Str+StartPos+j);
}
*(p+Len) = '\0';
return (p);
}
问题是:
在main里这样用
void main(void)
{
char *a="asdfasd";
char *p = NULL;
p = SubStr(a,1,4);
cout<<p<<endl;
delete p;
}
没有delete p程序竟然没报错
更奇怪的是我在后面加上后 运行时程序错误,
请问这是为什么呢?delete用法有错么?