关于在C++中函数参数的问题,如果在参数中用New的方式那么它的生命周期是怎样的?

第一种:

list<Person*>* persons=new list<Person*>;
persons->push_back(new Person("Robert","MALE","SINGLE"));
persons->push_back(new Person("John","MALE","MARRIED"));

第二种:

Person * person =new Person("Laura","FEMALE","MARRIED");
void printPerson(Person * person)
{
    cout<<person->getName()<<",";
    cout<<person->getGeder()<<",";
    cout<<person->getMaritalStatus()<<endl;
}

比如在上一段代码中,两种方式传参有什么样的区别吗?参数不是应该在栈空间的吗?

没什么区别的 函数都是传递参数都是指针,new方式只是省去一个零时变量指针

两个方式传参其实差不了多少

在你执行完这个进程,自己释放

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^