c++ - 将指针转换为 long

标签 c++ java-native-interface long-integer

我正在使用 JNI(使用 native 代码为 Android 进行开发)。

这种情况是我想向 Java 类发送一个指向 Native 对象的指针。为此,我已经看到将指针方向转换为 long,如下所示:

long pointerDirection = (long)pointer;

这安全吗?我读过,在某些架构中,“long”只是 32 位,但指针只需要 32 位,对吗?或者在 64 位中他们也使用 64 位?

谢谢

最佳答案

Is this secure?

不,绝对不是——该标准没有做出这样的保证(即使它实际上可以在许多机器上运行)。

您可以(仅)安全地将其转换为整型 ptrdiff_t

关于c++ - 将指针转换为 long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23735479/

相关文章:

c++ - 使用单词变体 C++ not 运算符时出现奇怪的错误

c++ - 从函数返回可变长度数组

Java Native Hook 陷入无限循环

java - 从 JNI 使用 GetDirectBufferAddress

java - 使用 JNI 调用 API 访问静态枚举字段

c++ - 如果在消息框之后调用 setOverrideCursor(Qt::WaitCursor) 则不起作用

c++ - 有没有办法反编译 Linux .so?

c++ - C++ 中的字符串到长数组

c - 宽度不兼容的变量

c++ - 是 "long long"= "long long int"= "long int long"= "int long long"吗?