要将数组b[]
复制到数组a[]
中,可以使用函数memcpy
,如下所示;
memcpy(a,b,sizeof(a))
.
但是 memcpy
只是将字节从一个地方复制到另一个地方。
我的问题是:
1.How
memcpy
copies elements of arrayb[]
intoa[]
by copying bytes?
2.Whysizeof(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/