C++ delete的使用
delete /delete[] 会根据变量地址的数据类型来释放内存,直接调用delete/delete[]不会有问题, 但如果将它放在函数里面如ICLASS_APIvoid __stdcall fastDeleteArrs(void* pvAddr){delete[] pvAddr;} 然后主程序用fastDeleteArrs来释放各种类型的指针就非常
·
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;
}
更多推荐
已为社区贡献50条内容
所有评论(0)