考虑这个小程序:
int main(int argc, const char *argv[])
{
int *i = new int;
//do something with i, where i is involved all the time
return 0;
}
作为良好的风格,并且为了表明你确实知道,你必须释放在堆上分配的内存,通常在返回语句之前添加
delete i;
。但如果忽略
delete i;
,会有什么影响吗?更新:请不要在评论中互相攻击。我知道为了安全起见,以及出于良好的风格等原因,应该释放已分配的内存。问题是,在这种特定情况下,是否可以安全地省略它。