【问题标题】:Make a pointer to an address which is stored at another address创建一个指向存储在另一个地址的地址的指针
【发布时间】:2020-09-12 19:50:05
【问题描述】:

我有一个未知地址(例如 fd010000)存储在已知位置 (00008108)。如何从未知地址中创建一个指针,以便从该地址获取值。

memory structure:
   0x00008108: fb00de00
   ...
   0xfb00de00: ????????
with fb00de00 being a placeholder

如何访问????????

【问题讨论】:

    标签: c pointers memory


    【解决方案1】:

    创建一个双指针并将其设置为已知地址。

    int **ptr = (int **)0x00008108;
    
    int val = **ptr; // This will set val to ????????
    

    请注意,整数和指针之间的转换取决于实现,但在任何合理的实现中都可能按预期工作。

    【讨论】:

      【解决方案2】:

      你有内存地址

      0x00008108
      

      您使用 * 取消引用该地址以获取该地址的值:

      fb00de00
      

      你说的是内存地址。所以你取消引用,这会给你??????你的未知价值。

      例子:

      int a = ??????; // (Unknown value)
      int * b = &a; // fb00de00
      int ** c = &b; // 0x00008108
      
      cout << **c; // prints ?????
      **c = 56; // change ????? to 56
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-10
        • 1970-01-01
        • 2011-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多