0

假设我有一个 32 字节长的 void* 数组,我想将数据从字节 8 删除到字节 16。是否有可能以某种方式“删除”这些字节?

4

2 回答 2

3

由于 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
于 2013-07-23T17:50:42.077 回答
0

您可以将char *索引 7-15 转换为并将其归零。

于 2013-07-23T17:50:35.320 回答