内存读写问题

问题描述 投票:0回答:1

代码

char* addr = value.get_addr();
memcpy(record_data + 6 + field->offset(), &addr, 8);

addr是一个指向内存某个区域的指针,现在我想把这个指针的地址存入内存的某个区域,所以我使用了memcpy函数,接下来我想再次读出这个地址,这样我就可以检查我已经写对了。

我对指针的读写操作不是很熟悉。有人可以给我一些建议吗?

c++ pointers memory
1个回答
0
投票

如果你只想存储地址,现在就不需要使用

memcpy
这样的函数了。为什么不直接将地址存储到向量或地图中?

#include <vector>

std::vector<char*> addrs;

const int StoreAddr(char* addr) {
    addrs.push_back(addr);
    return addrs.size() - 1;
}

char* GetAddr(const int index) {
    return addrs[index];
}

int main() {
    const int index = StoreAddr(value.get_addr());
    char* addr = GetAddr(index);
}
© www.soinside.com 2019 - 2024. All rights reserved.