响水凹

欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki

用户工具

站点工具


computer:c:tips:copy_entire_array

复制整个数组的一个方法

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

        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),否则该行为是未定义的。

computer/c/tips/copy_entire_array.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1