gpt4 book ai didi

C++ 帮助学生的指针

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:51 26 4
gpt4 key购买 nike

我正在尝试创建一个 vector 并将其传递给允许修改 vector 的函数。这是我的代码的删节版本,它不起作用。

void addStudent(vector<Student*>*);
int main()
{
vector<Student*> students = new vector<Student*>;
addStudent(students);
return(0);
}
void addStudent(vector<Student*> *students)
{
students->push_back(new Student("bob"));
}

此代码编译时出现错误。我想我没有正确传递指针,但我不确定。

最佳答案

你已经 promise 给 addStudent 一个指向 vector 的指针:

void addStudent(vector<Student*> *students)

所以,使用寻址运算符来获取指针:

vector<Student*> students;
addStudent(&students);

这里没有任何东西需要动态分配,但如果你这样做了,请注意 new 也返回一个指针:

vector<Student*>* students_ptr = new vector<Student*>();
addStudent(students_ptr);

另一种选择是通过引用传递:

void addStudent(vector<Student*>& students)
vector<Student*> students;
addStudent(students);

但是当函数要更改其参数时,我更喜欢指针。

关于C++ 帮助学生的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com