【发布时间】:2018-03-09 16:03:43
【问题描述】:
我正在学习 C++,我遇到了一些代码,我对它到底做了什么感到困惑。我正在学习动态记忆,我学习它的地方提到这是一个很好的做法。
double * pvalue = NULL;
if(!(pvalue = new double)){
cout<<"Error: out of memory." << endl;
exit(1);
}
我知道您正在创建一个名为 pvalue 的指针,但我不明白 if 语句。如果有人可以向我解释,我将不胜感激。
【问题讨论】:
-
请编辑您的代码!
-
new永远不会返回nullptr,除非您提供std::nothrow。 -
而
new几乎从来都不是“好习惯”。 -
你可能会发现这很有用stackoverflow.com/questions/26419786/…
-
为什么不使用
new?因为程序员现在负责管理分配的内存,并且许多计算机程序已经死去可怕的死亡,因为他们的程序员错误地认为他们管理了他们的内存。令人惊讶的是它有多么棘手。使用偏好的一般顺序类似于:自动分配、library container、smart pointer 和new。new下面有东西,但现在最好不要管它。
标签: c++