当前位置:  开发笔记 > 编程语言 > 正文

如何创建指针数组?

如何解决《如何创建指针数组?》经验,为你挑选了3个好方法。

我正在尝试创建一个指针数组.这些指针将指向我创建的Student对象.我该怎么做?我现在拥有的是:

Student * db = new Student[5];

但是该数组中的每个元素都是学生对象,而不是指向学生对象的指针.谢谢.



1> Mehrdad Afsh..:
Student** db = new Student*[5];
// To allocate it statically:
Student* db[5];


当您希望从函数返回数组时,需要在堆上分配数组.如果它在堆栈上分配,则会立即销毁该函数的范围.

2> 小智..:
#include 
std::vector  db(5);
// in use
db[2] = & someStudent;

这样做的好处是您不必担心删除已分配的存储 - 向量会为您执行此操作.


向量将_not_自动删除已分配的存储,它将释放_pointers_的存储空间,但不释放指针指向的内存.使用boost :: ptr_vector.

3> ypnos..:

指针数组被写为指针指针:

Student **db = new Student*[5];

现在的问题是,你只为五个指针保留了内存.因此,您必须遍历它们以自己创建Student对象.

在C++中,对于大多数用例,使用std :: vector生活更容易.

std::vector db;

现在你可以使用push_back()来添加新的指针,并使用[]来索引它.使用比**更清洁.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有