如何保存指针地址,以便另一个指针可以继续处理它
How to save a pointer address, so that another pointer can continue working on it?
有没有办法将指针的地址存储到任意变量(例如int
(中,并再次使用此变量来分配第二个指针的地址?
我知道你可以很容易地做到
int* p1;
int* p2;
p2 = p1;
我正在寻找的是这样的东西
int* p1;
int* p2;
long addr_p1 = (long)p1;
p2 = doMagicCast(addr_p1);
感谢您的任何建议
这是
正确的C++方法:
#include <cinttypes>
int main() {
int* p1;
int* p2;
std::uintptr_t addr_p1 = reinterpret_cast<std::uintptr_t>(p1);
p2 = reinterpret_cast<int*>(addr_p1);
}
您需要使用 std::uintptr_t
而不是 long
,因为无法保证long
可以保存指针。
但是在 32 位平台上(long
和指针通常有 32 位(,使用 long 的初始方法可能会起作用。
相关文章:
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 修改函数中的指针(将另一个指针作为参数传递)
- 如何将指针从一个void函数传递到另一个C++
- 如果C++对象的类在另一个boost模块中声明,如何使用boost将指向该对象的指针返回到python
- 将指针分配给另一个指针时会发生什么情况?
- 将指向给定子类的指针从一个向量复制到另一个向量
- C++将一个指针分配给另一个指针时执行的类型检查
- 将一个类的方法指针存储到另一个类中
- 是否可以使用智能指针成员设置具有另一个结构的结构?
- 初始化类中的指针数组,并在另一个类中检索它
- 从另一个指针指向函数的指针
- 使用指向成员函数的指针在另一个类中调用类构造函数
- 我正在尝试将表的地址传递给要在另一个函数中使用的指针,但得到不兼容的指针类型
- 无法将指向类的成员函数的函数指针作为参数传递给同一类的另一个成员函数
- 无法"this"指针传递到另一个类并在 CPP 中调用该类的任何方法
- 如果类"A"具有指向另一个类的指针,则"B" A 可以访问 B 类公共方法
- 如何使用指针从另一个类访问属性
- 如何从另一个嵌套类中调用某个封闭类的嵌套类的函数指针成员的值?
- C++ 无效双指针干扰另一个
- 两个抽象类,派生自同一个基类.如何访问从一个抽象类到另一个抽象类的指针