c - 使用 'memcpy' 函数

标签 c arrays function

要将数组b[]复制到数组a[]中,可以使用函数memcpy,如下所示; memcpy(a,b,sizeof(a)).
但是 memcpy 只是将字节从一个地方复制到另一个地方。
我的问题是:

1.How memcpy copies elements of array b[] into a[] by copying bytes?
2.Why sizeof(a) is supplied as arguments?

我是编程新手,所以请保持温和。

最佳答案

sizeof(a) 是数组 a 的总大小。例如,在

int a[3];
printf("%d", sizeof(a));

sizeof a 在大多数系统上将为 12(因为 int 通常是 4 个字节,而您有 3 个字节)。

memcpy 不知道 a 是一个数组。它只知道 a 指向某个内存地址,因此您必须告诉它要传递多少字节。大多数地方将memcpy的签名描述为:

void *memcpy(void *dst, const void *src, size_t nbytes)

关于c - 使用 'memcpy' 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167956/

相关文章:

c++ - 我应该专攻还是重载?

c - 二进制补码 stm32 c

c - 在C中使用OpenGL 3.0+绘制多条线

python - 如何对此代码执行 Numpy 优化?

swift - 当函数具有不同签名时将函数作为参数传递

python - 整数([x[,基数]])。 Python 文档中函数中的方括号?

c - 如果我们按位移动一个大于其大小的整数会发生什么

c - 使用 printf 在 yacc 中打印字符串文字标记会导致段错误

arrays - R 中的循环数组

python - 元素索引的矢量化搜索