用new定义的数组大小
Size of array defined with new?
是否有一个函数(可以编写)允许知道用new:
定义的数组的大小? int *a=new int[3];
*a=4;
*(a+1)=5;
*(a+2)=6;
谢谢!
没有标准的方法来获取new
分配的数组的大小。
一种更好的数组分配方法是std::vector
,它确实有一个size()
成员——当它超出作用域时,它会自动清理自己。
短答:没有。
使用std::vector
可以为此编写一个函数。但在现实世界中,这是个糟糕的主意。
虽然通话new
最有可能存储数组中元素的数量分配(或者至少,下面的实际分配的大小),没有办法,你可以得到这些信息以一种不依赖于知道new
适用于您的特定系统,这可能会改变如果你编译代码不同(如调试或发布版本的代码),修改版本的编译器(或运行时库),等等,等等。
使用std::vector
是一个更好的方法,因为你也不必担心在其他地方释放你的数组。
如果,出于某种原因,你不想[或被你的导师告知,你不能]使用std::vector
,你需要"记住"分配的大小。
相关文章:
- 在类c++中使用new声明数组
- 在将 new 与指针一起使用时,创建数组的指定长度
- 声明C++数组(带或不带 "new" 关键字)
- 使用 new 和 值进行数组初始化,但没有显式数量的元素
- 使用new创建数组而不声明大小
- 正确分配放置 new 的数组
- 如何在C++中使用 new 运算符创建对动态创建的数组的引用?
- 使用new时如何重新分配dyyanmic数组,不使用realloc删除C++?
- 第一次尝试使用new动态创建结构数组,程序挂起没有错误
- 使用可变模板列表初始化数组,并放置new
- 如何获取由 new 创建的数组的开始和结束
- 使用 "new" 命令在 C++ 中的类构造函数中分配 2D 数组
- 构造函数不会将使用 new 初始化的数组作为参数
- 将指针返回使用New创建的数组数组
- 使用泛型成员变量"placement new"结构/类数组的正确方法是什么?
- 将内存分配给 2D 数组时,“new int*[rowCount];”的含义是什么?是 2D 数组,是指向数组的指针数组
- 使用 Marshal.FreeHGlobal() 来释放以前在本地分配了"new"的数组?
- 向量在我的类中.错误:数组new [-fpermissive]中的圆括号初始化项
- 新增[size]对象(args ..)在数组new [-fpermissive]中添加圆括号初始化器
- 错误:数组new中的size必须是整型[-fpermissive]