Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно передать масив в арг. функции вызове 
:(
    Опции темы
maxi2
Дата 13.6.2014, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 8.5.2012

Репутация: 1
Всего: 1



Код
#include "math.h"
#include <iostream>

using namespace std;
float alpha=3.14/3;
float A[2]={2*sqrt(3),-4};
float B[2]={sqrt(3),0};

void coordynat (float t[]) {
    float * c;
    c[0]=t[0]*cos(alpha)-t[1]*sin(alpha);
    c[1]=t[0]*sin(alpha)+t[1]*cos(alpha);
    cout << "Prezhniye coordinaty tochky"<<"("<<t[0]<<";"<<t[1]<<"----"<<c[0]<<","<<c[1]<<endl;
                         };

int main()
{
    cout << coordynat (A)<< "\n"<<endl;
    return 0;
}


Добавлено @ 15:58
cout << coordynat (A)<< "\n"<<endl--если так то вызвывается еще один файл с ошибками,
а если как указатель cout << coordynat (*A)<< "\n"---
Цитата
|18|error: cannot convert 'float' to 'float*' for argument '1' to 'void coordynat(float*)'|


Модератор: Не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 19.6.2014, 12:31
PM MAIL   Вверх
Фантом
Дата 13.6.2014, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Начнем с конца. Функция coordynat ничего не возвращает, поэтому смысл попытки вывода ее результата совершенно неясен.

Далее. Каков глубокий смысл объявления массива c через указатель? Если хотелось выпендриться, то надо было выпендриваться до конца и не забывать выделить память для массива, а не просто объявить указатель на него и сразу писать в его элементы что-то.

PM   Вверх
EgoBrain
Дата 17.6.2014, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



maxi2, в этой теме есть про то, как передать адрес первого элемента массива в функцию для работы с этим массиом, и как передать указатель на массив, который будет создан в функции, а затем использован далее в программе.
А вообще лучше так сильно не абстрогируйся от предмета, оно не поможет, нужно знать как оно на самом деле. То есть оперируй не понятием массив, а понятием память и работа с ней.
PM MAIL ICQ Skype   Вверх
ProstoMax
Дата 18.6.2014, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.6.2014

Репутация: нет
Всего: нет



Код
#include "math.h"
#include <iostream>

using namespace std;
float alpha = 3.14 / 3;
float A[2] = { 2 * sqrt(3), -4 };
float B[2] = { sqrt(3), 0 };
float coordynat(float t[]);


int main()
{
    
    cout << coordynat(A) << "\n" << endl;
    cin.get();
    return 0;
}
float coordynat(float t[]) {
    
    float * c = new float;
    c[0] = t[0] * cos(alpha) - t[1] * sin(alpha);
    c[1] = t[0] * sin(alpha) + t[1] * cos(alpha);
    cout << "Prezhniye coordinaty tochky" << "(" << t[0] << ";" << t[1] << "----" << c[0] << "," << c[1] << endl;
    return *c;
    delete c;
};


Как то так...


Это сообщение отредактировал(а) ProstoMax - 18.6.2014, 11:37
PM MAIL   Вверх
k0rvin
Дата 18.6.2014, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(ProstoMax @  18.6.2014,  11:32 Найти цитируемый пост)
Как то так...
Код

float coordynat(float t[]) {
    float * c = new float;
    ...
    c[1] = ...



Добро пожаловать за границу массива.

Добавлено через 9 минут и 18 секунд
http://ideone.com/CNl0ln


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
xvr
Дата 18.6.2014, 13:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(ProstoMax @  18.6.2014,  11:32 Найти цитируемый пост)
Как то так...

Ох не так  smile 
Особенно порадовала конструкция -
Код

    return *c;
    delete c;
  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0679 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.