懒惯了,又是很久很久没有写这些东西了。
基于自己前段时间犯的一个错,特写下这篇文章来警示自己!
前段时间,自己写了如下的一段代码:
char *pBuff = new char[20];
memset(pBuff, 0, sizeof(pBuff));
pBuff = "hello,world!";
cout<<pBuff<<endl;
delete []pBuff;
这段代码编译时没问题,可一运行就会有出问题!
细看之,这段代码有如下3个问题:
1.pBuff所指向的内存泄漏
2.memset并未将pBuff所指向内容都清空
3.试图释放静态存储区的内存
分析下:
pBuff = "hel