美文网首页
C++指针强转与打印的问题

C++指针强转与打印的问题

作者: 寽虎非虫003 | 来源:发表于2022-11-21 15:36 被阅读0次

问题引入

我在使用某些供应商提供的库的时候发现,他们的指针在linux下面强转为了long,而long不仅会表示这种被转换过的指针与他们提供的接口交互,也会继续在某些地方充当数字本身,而我在尝试使用long提供的指针指向的数据的时候遇到了问题。

看一部分测试代码

#include <iostream>
using namespace std;

int main()
{
    //int a = 5;
    //int *p = &a;
    //cout<<p<<endl;
    //cout<<(long)p<<endl;
    //long x = (long)p;
    long x = 89;
    cout<<(int*)x<<endl;
    int *pn = (int*)x;
    cout<<pn<<endl;
    unsigned char *p = (unsigned char *)pn; // 可以正常运行
    cout<<p<<endl;//不能正常打印
   return 0;
}

测试平台为在线C++
以上代码的输出为

0x59
0x59

run: line 1:     3 Segmentation fault      (core dumped) LD_LIBRARY_PATH=/usr/local/gcc-9.2.0/lib64 ./a.out

Exited with error status 139

在这里面,long的值可以转换为int*但是无论是一次转换成unsigned char*还是曲线转换,在调用的时候都会出错,哪怕只是打印地址值。目前尚不清楚原因。

相关文章

  • C++指针强转与打印的问题

    问题引入 我在使用某些供应商提供的库的时候发现,他们的指针在linux下面强转为了long,而long不仅会表示这...

  • c++一些基本的命令

    安装c++编译软件包:sudo apt-get install g++ 命名空间 强转打印 标准输入 引用 引用的...

  • C++ 指针转long的问题

    linux 下查看进程内存占用top -d 1 -p 23536linux下 指针可以强转long,再强转指针取到...

  • 指针、引用、结构体强转

    指针、引用、结构体强转

  • 关于基类与派生类指针的转换问题

    派生类指针强转基类指针 向上转换简单无门槛,直接通过dynamic_cast转换,见代码示例。 基类指针强转派生类...

  • Ios面试复习-- 指针

    1.指针的长度 和 类型 二维数组的指针强转

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • C++ 指向类的指针

    原文地址:C++ 指向类的指针 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成...

  • 1.2.09_C++ 指向类的指针

    C++ 类 & 对象 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算...

网友评论

      本文标题:C++指针强转与打印的问题

      本文链接:https://www.haomeiwen.com/subject/veknxdtx.html