假设我有一个 32 字节长的 void* 数组,我想将数据从字节 8 删除到字节 16。是否有可能以某种方式“删除”这些字节?
问问题
694 次
由于 C 中的数组是一个连续的内存区域,因此您不能在不复制的情况下“剪切”它的部分。
以下是如何做到这一点memcpy
:
char copy[16];
char *ptr = voidPtr;
memcpy(copy, ptr, 8); // Copy bytes 0..7
memcpy(copy+8, ptr+16, 8); // Copy bytes 16..31
您可以将char *
索引 7-15 转换为并将其归零。