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

Аргументы функции - C++

Восстановить пароль Регистрация
 
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 242
30.07.2011, 16:56     Аргументы функции #1
Вопрос на счет аргументов функции в С++. есть такая функция:
Код
void Teleport(Player* pPlayer, float array[5])
    {
	int i = 0;
        pPlayer->TeleportTo(massive[i], massive[i+1], massive[i+2], massive[i+3], massive[i+4]);
    }
(pPlayer является экземпляром заранее реализованного объекта, он обозначает игрока, TeleportTo реализована заранее, принимает пять аргументов (uint32 mapID, float X, float Y, float Z, float Orientation), но это тут значения не имеет, просто этой функцией можно телепортировать игрока в игровом пространстве некоторой игры.)
Есть массив с координатами:
Код
float Coord[5] = {0, -8899.667969F, 564.989441F, 92.821983F, 0.630244F};
При вызове функции Teleport(pPlayer, Coord[]) появляется ошибка:
(Аргумент типа "float" несовместим с параметром типа "float *" )
Написал подобное на C#, ошибка тоже появляется, но уже написана по-другому
(Аргумент "1": преобразование типа из "float" в "float[]" невозможно)
Почему в обоих случаях она возникает? Ведь массив имеет тип float. Как это решить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2011, 16:56     Аргументы функции
Посмотрите здесь:

Аргументы функции по умолчанию C++
C++ Аргументы функции по умолчанию
C++ Аргументы функции main
C++ Аргументы функции по умолчанию
C++ Аргументы функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.07.2011, 17:00     Аргументы функции #2
C++
1
2
3
4
5
Player pPlayer;
Teleport(&pPlayer, Coord);
//а можно и так, но все зависит от того как у вас оно вызываеться и создаеться
Player* pPlayer = new Player();
Teleport(pPlayer, Coord);
а вообще немешало бы показать как вы вызываете
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 242
30.07.2011, 17:03  [ТС]     Аргументы функции #3
Там оператор switch, сравнивает по значению специальной переменной. В меню игроку доступны некоторые кнопки, кнопка телепортации имеет значение 38.
case 38:
Teleport(pPlayer, Coord[5]);
break;
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.07.2011, 17:04     Аргументы функции #4
Цитата Сообщение от William Blake Посмотреть сообщение
case 38:
Teleport(pPlayer, Coord[5]);
break;
вы можете показать больший кусок кода, который включает в себя создание pPlayer и Coord[5], ваши 3 строчки о ситуации ничего не говорят
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
30.07.2011, 17:09     Аргументы функции #5
Цитата Сообщение от William Blake Посмотреть сообщение
Teleport(pPlayer, Coord[5]);
здесь в функцию передаётся один элемент, к тому же с недопустимым индексом.
Если надо передать весь массив, то это так:
C++
1
Teleport(pPlayer, Coord);
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 242
30.07.2011, 17:13  [ТС]     Аргументы функции #6
Все, понял, что ступил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2011, 17:58     Аргументы функции
Еще ссылки по теме:

Аргументы у функции C++
C++ Аргументы Функции
C++ Аргументы функции main

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

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
30.07.2011, 17:58     Аргументы функции #7
Цитата Сообщение от William Blake Посмотреть сообщение
Там оператор switch, сравнивает по значению специальной переменной. В меню игроку доступны некоторые кнопки, кнопка телепортации имеет значение 38.
case 38:
Teleport(pPlayer, Coord[5]);
break;
Вот это:
C++
1
Teleport(pPlayer, Coord[5]);
и есть ошибка. Ты передаешь ОДИН элемент массива, а не массив...
Надо так:
C++
1
Teleport(pPlayer, Coord);
Yandex
Объявления
30.07.2011, 17:58     Аргументы функции
Ответ Создать тему
Опции темы

Текущее время: 23:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru