warning: deleting 'void *' is undefined 错误

如果我们new出来的指针是一个基本类型,没什么关系,内存还是会被释放的,但是如果是一个类对象指针,在处理过程中转成了void*,那就有问题了,析构函数将不会被调用。
故new的指针类型要和delete的指针类型要保持一致。

如下所示:

object* p=new object[10];

void* p2=(void *)p;

//注意指针转换

delete[] (object*) p;



posted @ 2019-07-04 14:33  朱小勇  阅读(1679)  评论(0编辑  收藏  举报