c++ - 在c ++中为指针参数分配地址
问题描述
我有一个结构,说:
struct Astruct {
int a;
int b;
}
我有那个结构的 av 实例说:
private:
Astruct My_List;
然后我有一个函数,我想获取 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;
}
并将地址传递给指针。在这种情况下,我可以更改指针指向的数据,即指针。
谢谢再见!
推荐阅读
- yup - 是的数组验证 - 如何在验证期间获取上一个或下一个项目?
- python - 使用循环参数创建数据帧作为数据帧名称的一部分
- c++ - 如何从 C++ 中的基变量调用派生函数?
- python - 如何在 Python 中不使用 WMI 获取系统内存信息?
- python - 运行 ec2 实例的用户数据时出现 aws 凭据错误
- spring-boot - 如何在 Spring Boot 中为 Redis 生成缓存 CustomKey
- apache-beam - 由于我想模拟的接口,apache bean 无法序列化
- javascript - React 中的 event.target.value 到底是什么?
- reactjs - 更新多个火石系列
- pytorch - 需要帮助理解使用 Pytorch 进行迁移学习的特征提取