【发布时间】:2011-01-13 08:01:45
【问题描述】:
我刚开始接触 C++,我想养成一些好习惯。如果我刚刚使用 new 运算符分配了一个 int 类型的数组,我怎样才能将它们全部初始化为 0 而无需自己循环遍历它们?我应该只使用memset 吗?有没有“C++”的方式来做到这一点?
【问题讨论】:
-
如果你想养成良好的 C++ 习惯,那就避免直接使用数组,而是使用向量。 Vector会初始化所有的item,不管是什么类型,然后你就不用记得调用delete[]操作符了。
-
@brianegge:如果我需要将数组传递给外部 C 函数,我可以只给它向量吗?
-
你可以传
&vector[0]。 -
当然,当您将数组传递给 C 函数时,您通常必须指定指向第一个元素的指针,如 @jamesdlin 所说的 &vector[0] 以及数组的大小,在此提供大小写为vector.size()。
-
相关(要求非数组类型):stackoverflow.com/questions/7546620/…
标签: c++ initialization memory-management new-operator