当我分配内存而不调用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
没有优化出来。)
答案 0 :(得分:0)
它不是未定义的行为;它是一个内存泄漏。
当然泄漏&#34;存在&#34;只要进程仍在运行;在这种情况下,过程立即退出(并且泄漏的概念变得没有实际意义)。