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


Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐