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;
}


你可能感兴趣的:(C,&,C++)