使用 memcpy 从缓冲区的第二个元素复制到其他缓冲区

标签 c

我想使用 memcpy 而不是 for 循环将一个缓冲区的第二个元素复制到另一个缓冲区。

for(i=1,j=0; i<12; i++,j++)
{
  buff[j] = buffer[i];
}

有人可以推荐我吗

最佳答案

假设它们都是“真正的”数组,因此不重叠:

memcpy(buff, buffer + 1, 11 * sizeof *buff);

这还假设它们都具有相同的类型,但使用 sizeof 来计算项目大小,因此无论数组的实际类型如何,它都可以工作。

关于使用 memcpy 从缓冲区的第二个元素复制到其他缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20542117/

相关文章:

c# - 通过 FindWindowEx 获取所有控件

c - 编写一个提示用户输入电话号码的程序

c - '\0' 是否自然出现在文本文件中?

移动到不同的头文件后无法发送指向结构的指针

c - send() 总是被 EPIPE 打断

c - sqlite3_exec的使用

c - 如何在 Atmega324a 微 Controller 上实现每隔几秒打开和关闭信号 (PWG) 的定时器?

c - 链接列表错误(语言: C)

C 顶点数组错误值

c - 为什么在尝试用 c 打印矩阵时会出现此错误?