为什么我不能将数组分配为& a =& b?

时间:2011-10-24 22:32:05

标签: c

我在分配数组时遇到问题:

int a[];
int b[] = {1,2,3};
&a = &b;

我知道我可以使用指针,但我想以这种方式尝试......

2 个答案:

答案 0 :(得分:15)

您无法在C中分配数组。您可以使用memcpy()中声明的<string.h>函数复制它们:

int a[3];
int b[] = {1,2,3};

memcpy(&a, &b, sizeof a);

答案 1 :(得分:14)

正如您所发现的那样,这种方法不起作用。您无法在C中分配数组。

然而,结构是可分配的。所以你可以这样做:

typedef struct
{
    int x[3];
} T;

T a;
T b = { { 1, 2, 3 } };

a = b;