Почему я не могу назначить массивы как & a = & b? - PullRequest
7 голосов
/ 25 октября 2011

У меня проблема с назначением массива вроде:

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

Я знаю, что могу использовать указатели, но я хочу попробовать это таким образом ...

Ответы [ 2 ]

16 голосов
/ 25 октября 2011

Вы не можете назначать массивы в C. Вы можете копировать их с помощью функции memcpy(), объявленной в <string.h>:

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

memcpy(&a, &b, sizeof a);
14 голосов
/ 25 октября 2011

Этот способ не работает, как вы уже нашли. Вы не можете назначать массивы в C.

Структуры, однако, могут быть назначены. Так что вы можете сделать это:

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

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

a = b;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...