复制整个数组的一个方法

我们知道,无法通过赋值操作实现两个数组的复制。下面的代码是非法的:

        int a[10], b[10];
        a = b;

由于标准C支持struct/union对象的赋值操作,因而可以将数组嵌在struct/union内,来实现数组的复制。如:

struct arr {
        int contents[10];
};
 
        struct arr a, b;
        a = b;

但这个方法,需要确保变量a和b的内存区域没有部分重叠(overlap),否则该行为是未定义的。