int* temp;
temp=mas;
mas=dopmas;
dopmas=temp;
Обмен ссылками на массив
Код:
Но VS2005 выдает ошибку
Цитата:
error C2106: '=' : left operand must be l-value
error C2440: '=' : cannot convert from 'int *' to 'int [16]'
error C2440: '=' : cannot convert from 'int *' to 'int [16]'
Подскажите что делать? Заранее благодарен.
2. Имя массива является не ссылкой, а константным указателем на первый элемент.
Я так полагаю, mas и dopmas объявлены как массивы int, что-то вроде того?
Код:
int mas[100];
int dopmas[200];
int dopmas[200];
В таком случае, переменной mas нельзя что-то присвоить. mas интерпретируется как
Код:
int * const mas;
Здесь выход такой:
Код:
int mas[100];
int dopmas[200];
// Какая-то функция
int *array1 = mas;
int *array2 = dopmas;
// Теперь надо поменять местами
int *tmp = array1;
array1 = array2;
array2 = tmp;
// Можно проще:
swap(array1, array2);
int dopmas[200];
// Какая-то функция
int *array1 = mas;
int *array2 = dopmas;
// Теперь надо поменять местами
int *tmp = array1;
array1 = array2;
array2 = tmp;
// Можно проще:
swap(array1, array2);