C++ delete的使用
delete /delete[] 会根据变量地址的数据类型来释放内存,直接调用delete/delete[]不会有问题, 但如果将它放在函数里面如
ICLASS_API void __stdcall fastDeleteArrs(void* pvAddr){ delete[] pvAddr; }
然后主程序用fastDeleteArrs来释放各种类型的指针就非常危险很容易发生AV, 必须每种类型定义一个释放函数,比如:
ICLASS_API void __stdcall fastDeleteInts(int* pvAddr) { cout << "addr:" << pvAddr << endl; delete[] pvAddr; } ICLASS_API void __stdcall fastDeleteMat(PMat pvAddr) { cout << "addr:" << pvAddr << endl; delete[] pvAddr; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。