delete的用法有问题吗?
int main(int argc, char* argv[])
{
char cTxt1[] = "This is a game ";
int nLeng = strlen(cTxt1)+strlen(cTxt1);
char *pTxt3 = new char(nLeng+5);
strncpy(pTxt3,cTxt1,strlen(cTxt1)+1);
strncat(pTxt3,cTxt1,strlen(cTxt1)+1);
delete []pTxt3;
return 0;
}
以上简单程序在执行到delete []pTxt3;一句出现access violation错误,修改new中分配内存数目,以及strncpy,strncat最后一个参数均无法避免。
那么错误在什么地方?
[解决办法]
delete pTxt3;
[解决办法]
char *pTxt3 = new char(nLeng+5);
====> char *pTxt3 = new char[nLeng+5];
[解决办法]
char *pTxt3 = new char[nLeng+5];