c++ - 存储和检索 char 数组的地址/指针

标签 c++ arrays pointers linked-list

假设我们有一个字符数组:

char pool[1000];

和一个指针

char* ptr;

指针存储一个地址到Pool中的一个数据 block 。我想将此地址存储在池中并同时检索它。

基本上,我想要做的是一个嵌入到 char 数组池中的链表。原因是我不允许创建任何新变量(全局),我不能包含新的 header ,以及其他限制。

所以问题是:我如何在 pool[] 的前 4 个元素中分段和容纳一个 4 字节地址,以及我如何再次检索它以进行修改。

这个操作会经常发生,所以它需要快速......当然不能依赖外部函数。

最佳答案

要将 ptr 的值存储在 pool 中,请使用:

memcpy(pool, &ptr, sizeof(ptr));

要从 pool 中检索指针的值,请使用:

memcpy(&ptr, pool, sizeof(ptr));

回复:

This operation will happen frequently so it needs to be fast...and of course not rely of external functions.

memcpy 正是您所需要的。如果您不能使用 memcpy,则需要在您的代码中实现确切的功能。

除非您能够验证对 memcpy 的调用是性能瓶颈,否则我建议您使用它。

关于c++ - 存储和检索 char 数组的地址/指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37290057/

相关文章:

c++ - 如何在C++中模拟按住键盘按钮

swift - Swift 3 中可能存在隐式桥接多维数组的错误?

c - 结构变量用 printf 改变值

c - 合并排序实现不起作用

c++ - 指向 const int 指针的 Const 指针强制转换为指向 int 指针的 const 指针

c++ - 通过模板为项目范围内的唯一 ID 自动增加类型

c++ - 为什么返回堆栈对象有效?

c++ - 卡住在 __write_nocancel

javascript - 循环遍历 Javascript 数组

arrays - Mongoose中,基于数组查询字段