这里的内存delete该怎么用?
代码:
long CCardPwdtestDlg::StoL_10(CString str)
{//取字符串所对应的数值
long temp,i;
char *str1;
temp=str.GetLength()+1;
str1=new char[temp];
strcpy(str1,str.GetBuffer(0));
temp=strtol(str1,&str1,10);
i=temp;
delete []str1; //<——这里出错,如下几种写法都出错
return temp;
}
出错句子写成delete str1; delete [] str1; delete[] str1;都是同样的错误:
内存不可读。
令temp=str.GetLength();也一样,但是去掉delete就没事了,这个内存该如何释放?请高手指点一下