直到最近,我只看到使用memcpy(). 在课程和在线说明中,将一个结构的内容复制到另一个结构中通常看起来像
struct block *b0 = malloc(sizeof(struct block));
struct block *b1 = malloc(sizeof(struct block));
/* populate fields in *b0 */
memcpy(b1, b0, sizeof *b1); /* copy contents of b0 into b1 */
/* free b0, b1 */
但是,此任务也可以通过替换memcpy().
*b1 = *b0; /* dereferenced struct assignment */
是否有充分的理由为什么它没有被广泛使用(至少在我有限的经验中)?这两种方法——赋值和——memcpy()是等价的,还是有一些令人信服的理由可以memcpy()普遍使用?