Я получаю несовместимые типы в назначении? - PullRequest
1 голос
/ 29 мая 2011
int k[4] = {1,2,3,4};
int kk[4];  
kk=k;

Я получаю несовместимые типы в назначении ??Нужно ли зацикливать и присваивать каждое значение в массиве, или есть более простой способ?

Спасибо

Ответы [ 3 ]

2 голосов
/ 29 мая 2011

Вы должны выполнить цикл или использовать библиотечный вызов.

Один из вариантов будет memcpy(kk, k, sizeof(k));. Для этого вы должны #include <string.h>.

1 голос
/ 29 мая 2011

Да.Массивы не ведут себя как примитивные типы данных в C. Вы должны циклически перебирать массив и назначать каждое значение.Вы не можете просто назначить один массив другому (тем более что kk действительно является указателем на int).Не слишком сложно, хотя:

int i;
for (i = 0; i < 4; i++)
    kk[i] = k[i];
0 голосов
/ 29 мая 2011

Копирование старых добрых C-массивов отсутствует. Так что да, вы должны просмотреть и скопировать каждый элемент.

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