Min*_*man 0 c++ pointers memory-leaks
#include <iostream>
using namespace std;
int main()
{
int i,j;
int * k;
char m;
do{
cin >> j;
k = new int[j];
for (i = 0; i < j; i++){
k[i] = i;
cout << k[i] << ", ";
}
delete[] k;
cout << "\nContinue?\n";
cin >> m;
}while (m != 'n');
}
Run Code Online (Sandbox Code Playgroud)
这是我用来描述我理解new和解决问题的程序delete.'k'会产生内存泄漏吗?
sha*_*oth 11
此代码不是异常安全的 - 如果在它之间抛出异常new[]并且delete[]指向的块被泄露.使用std::vector来解决这一问题.