在C、C++ 中,void * 指针可以转换为任意类型的指针类型,在删除void*指针时编译器往往会发出如下警告
main.cpp:28:9: warning: deleting ‘void*’ is undefined [-Wdelete-incomplete]
翻译:警告:删除“void *”指针可能引发未知情况(默认打开警告)
并且,根据删除的void*的实际类型的不同,会导致不同的内存不能有效释放的问题
释放void* ,系统会以释放普通指针(char, short, int, long, long long)的方式来释放void*,并不是实际类型大小的空间;
如果void *指向一个数组指针,那么由于释放指针时用了delete p