如果在一个char[100]中保存了类A的一个对象a的指针,请问如何将这个char[]中的字符重新转换为A的指针呢?谢谢!问题:A *a = new A;
      char[100] cPointer;
      sprintf(cPointer,"%x",a);如何将cPointer中的内容取出来做为A的指针呢?

解决方案 »

  1.   


    A *a = new A;
      char[100] cPointer;
      sprintf(cPointer,"%x",a); //你这样保存的是a指向的值 而非a指针的地址。
      
      
      可以这么用
      
      A *a = new A;
      char[100] cPointer;
      sprintf(cPointer,"%x",&a);
      
       到用的时候
       cPointer....//首先转换为16进制值,此处省略,自己转换

       char **p = NULL;
        *p = lPointAddr;//转换后的32位LONG值。
    // 这时候就获取到了啊
      

  2.   

    A *a = new A;
      char[100] cPointer;
      sprintf(cPointer,"%x",a);
      A *b=(A*)strtoul(cPointer,NULL,16);
      

  3.   

    就是一个十六进制数的字符串转换嘛AAAA要转换成0xaaaa。
      

  4.   

    指针不是4个字节吗?干嘛放到char类型里面去?
    为什么不用C++提供的方法,要用C的呢?
    用int temp=reindivter_cast<int>(a)转换成整数,保存整数不行吗?