没搞清刚才的delete
char* pBuf = new char[100];
int* pInt = (int*)pBuf;
delete pInt;
没有内存泄露,但是用法对吗?
引一回帖:
int* pInt的空间是在栈中分配的
char* pBuf的空间也是在栈中分配的,但是pBuf指向的内容是在堆中分配的
堆中分配的内存才需要手动释放
原帖见 http://topic.csdn.net/u/20090618/13/6395f807-241d-4672-9913-19a98604d849.html?1384125677
难道pInt指向的不是堆中分配的内存?delete pInt应该完全和delete pBuf一样啊。
如果不一样的话,那下面代码是否也是错误的?
char* pBuf = new char[100];
char* pBuf2 = pBuf;
delete []pBuf2;