我在int main中声明了动态数组,所以我的问题是如何在析构函数中删除和释放该数组?或者我应该在主内部释放。
delte [] ptr ---
请回答这个简单的问题。提前致谢
我还实现了类,但在main中声明了动态数组,那么使用析构函数是什么?我应该在析构函数中删除吗?
答案 0 :(得分:1)
程序本身没有析构函数。它从main
的开头开始,到main
的末尾结束。如果您需要释放在main
开头分配的内存,则应在main
结束前执行此操作:
int main() {
int* arr = new int[10];
// Do lots of work
delete[] arr;
}
当然,如果使用RAII将这个内存分配封装在一个类中会更好,这样你就不必手动处理它。实际上,已存在类型 - 标准库容器(例如std::vector
或std::array
)。
答案 1 :(得分:0)