首页 >后端开发 >C++ >我什么时候应该使用 C 中的'新”运算符?

我什么时候应该使用 C 中的'新”运算符?

DDD
DDD原创
2024-11-30 10:51:11830浏览

When Should I Use the

何时在 C 中使用“new”?

作为从 C#/Java 过渡的开发人员,理解 C 中的对象实例化可能会令人困惑。本文阐明了何时使用“new”运算符以及何时避免使用它。

使用“new”:确保对象长寿

当您想要一个对象持续存在,直到它被明确删除。如果没有“new”,对象一旦超出范围就会被销毁。考虑以下示例:

void foo() {
  Point p = Point(0,0); // p is destroyed here
}

for (...) {
  Point p = Point(0,0); // p is destroyed after each iteration
}

对数组使用“new”

C 中的数组是就地分配的(即在堆栈上)。但是,如果您需要创建一个在运行时确定大小的数组,则必须使用“new”来分配它。

void foo(int size) {
   Point* pointArray = new Point[size];
   ...
   delete [] pointArray;
}

就地分配(不使用“new”)

出于性能原因,就地分配更可取。对于类中声明的对象,它会自动发生。

class Foo {
  Point p; // p will be destroyed when Foo is
};

请记住,使用“new”分配和释放对象比就地分配计算量更大。仅在必要时使用它,以避免不必要的开销。

以上是我什么时候应该使用 C 中的'新”运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn