如何解决在C ++中为指针参数分配地址
struct Astruct {
int a;
int b;
}
private:
Astruct My_List;
public:
void Get_My_List(Astruct* List) {
List = &My_List;
}
但是似乎总是将参数Astruct * List设置为0; 我知道我可能可以创建一个称为Astruct&Get_Address()的函数,但在这种情况下,我想知道为什么我不能在参数中分配地址。我的意思是可以将参数作为引用传递并更改数据。也许当我写这篇文章时,我现在就开始理解问题了……无论如何,可以确定是否可以通过参数更改指针指向的地址?还是可以只更改指针指向的数据?
解决方法
我知道了。是的,这是关于混乱,而不是指针混乱,更像是参数混乱! 所以问题是我认为我可以通过参数“返回”值。我以为是因为我之前创建了使用指针的函数,然后该函数更改了地址指向的数据。是的,它被“设置”为零。我的意思是@john是正确的,代码无法设置它,但是它永远不会改变。因为我传入的值被初始化为零,并且我不能更改参数,所以在本例中为Astruct * List。因此,我传递的指针保持不变。 因此,我要做的就是使函数采用指向指针的指针。
void Get_My_List(Astruct** List) {
*List = &My_List;
}
然后将地址传递给指针。在那种情况下,我可以更改指针指向的数据,即指针。
谢谢,再见!
,您可以传递引用指针:
void Get_My_List(Astruct*& List) {
List = &My_List;
}
并这样称呼它:
AstructHolder obj{};
Astruct* my_ptr{nullptr};
obj.Get_My_List(my_ptr);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。