【发布时间】:2014-07-30 22:50:55
【问题描述】:
当我分配内存而不调用delete时,这是未定义的行为吗?
例子:
int main(int argc, char** argv) {
int* a = new int[1];
// next code only to prevent optimization (hopefully)
*a = argc; std::cout << *a << std::endl;
// no delete
return 0;
}
(让我们假设new 未优化)。
【问题讨论】:
-
不,这是定义的行为:内存泄漏。由于您的程序随后立即退出,但操作系统仍会回收其所有内存。
-
优化输出是什么意思?
-
@juanchopanza:谢谢你的链接,没有找到它是搜索...
标签: c++ memory-management language-lawyer