Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Hard_core94
0 / 0 / 0
Регистрация: 31.01.2014
Сообщений: 4
#1

Взаимный обмен значений указателей в параметрах функции - C++

09.02.2014, 18:56. Просмотров 335. Ответов 1
Метки нет (Все метки)

Необходимо создать шаблонную функцию
C++
1
void f(int *x, float *y)
в которой *х - указатель на массив, состоящий из целых чисел, *у - указатель на массив, состоящий из чисел типа float

Я хотел поэлементно обменять массивы

Вот что получилось

C++
1
2
3
4
5
6
7
template <class typename A, class typename B>
void f(A *x, B *y)
{
    A temp = *x;
    *x = A *y;
    *y = B temp;
}
Но преподавателю не понравилось, что я указателю присвоил указатель. Соответственно задание не выполнено.

Помогите пожалуйста!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 18:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Взаимный обмен значений указателей в параметрах функции (C++):

Обмен значений 2 указателей в функции - C++
Добрый вечер всем. Хочу при помощи функции менять адреса двух указателей. Вот код: #include &lt;iostream&gt; using namespace std; ...

Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? - C++
Доброго времени суток! Рассматриваю пример (из Лафоре) сортировки массива указателей на объекты, для чего используются указатели на...

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей - C++
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей. Вернуть адрес...

Ошибка в параметрах функции - C++
Здравствуйте! Прошу помочь разобраться. Никак не могу понять как правильно написать параметры функции, чтобы принимала и переменные...

bool в параметрах функции - C++
можно ли использовать тип bool в параметрах функции? void draw(char ch, int width, bool vline, bool hline ); или лучше использовать...

Указатели в параметрах функции - C++
Доброго времени суток! У меня &quot;вопрос&quot;, кто-нибудь может максимально подробно объяснить разницу между: 1) void ff (Listt **zag, int v){ ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
НеСказочник
58 / 46 / 7
Регистрация: 12.11.2012
Сообщений: 344
Записей в блоге: 2
10.02.2014, 02:27 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну так ему правильно не понравилось. Указатель
C++
1
A *x
- это по факту адрес в памяти где начинается массив типа A, т.е. адрес первого элемента массива (тот который имеет индекс 0). Если прибавить к нему единицу
C++
1
x += 1;
, то он уже будет указывать на следующий элемент, так как они всегда расположены подряд. присвоение указателей, в данной ситуации, занятие действительно бессмысленной, так как Вы, по факту, ничего не измените. Что где хранилось то там храниться и будет. И по выходу из метода оригиналы указателей на массивы даже не изменятся.

Правильно будет перебрать элементы в цикле, но тогда нужно знать размеры массивов. Можно, например передать размеры третьим параметром. Они всё равно должны быть одинаковые, так что можно ввести один параметр размера для обоих. Откуда взять размер? Очень просто: он известен тому, кто объявит массивы вызовет ваш метод для них.

Добавлено через 3 минуты
Как-то так:

C++
1
2
3
4
5
6
7
8
9
10
11
template <class typename A, class typename B>
void f(A *x, B *y, int ArraySize)
{
    A temp;
    for(int i=0; i<ArraySize; i++)
    {
        temp = x[i];
        x[i] = (A)y[i];
        y[i] = (B)temp;
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2014, 02:27
Привет! Вот еще темы с ответами:

Таблица в параметрах функции - C++
Гуру, помогите пожалуста новичку! Хочу заменить if ((cmd_SS==&quot;Q&quot;)|(cmd_SS==&quot;QUIT&quot;)|(cmd_SS==&quot;EXIT&quot;)) {} на одну функцию if...

Как реализовать флаги в параметрах функции - C++
Объясните пожалуйста как реализовать флаги в параметрах функции. К примеру: есть такие флаги left middle right drowPoints...

Ключевое слово class в параметрах функции - C++
Всем привет. Увидел в чужом коде такую конструкцию. void SomeFunction(class SomeClass * a) { a-&gt;F(); } В параметрах...

Как передать вектор в параметрах функции класса? - C++
есть функция bool ReadDir(const std::wstring &amp;, const std::wstring&amp; , int, bool,bool , std::vector&lt;std::wstring&gt;&amp;, bool&amp; ); кода...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru