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

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

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

Динамический массив структуры в качестве параметра функции - C++

19.11.2012, 18:09. Просмотров 715. Ответов 4
Метки нет (Все метки)

Привет! Нужна помощь (
Есть структура
struct Embedded
{
double density;
double energy;
}

есть 2 массива динамический
Embedded *emb_energy = new Embedded[size];
double *delta = new double [size];

есть функция
void derivatives (int size, Embedded *emb_energy, double *delta)
{
int i;
for (i=0;i<size-1;i++)
{
delta[i]=(emb_energy[i+1].energy+emb_energy[i].energy)/(emb_energy[i+1].density+emb_energy[i].density);
}
}

Вопрос: правильно ли я пишу параметры к функции и как вызвать эту функцию?
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 18:09     Динамический массив структуры в качестве параметра функции
Посмотрите здесь:

Функции, передача массива в качестве параметра C++
Двумерный массив в качестве параметра функции C++
Как передать файл в качестве параметра функции C++
C++ Как передать итератор в качестве параметра функции?
Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию C++
Функции: Как передать в качестве параметра число? C++
Передача функции с двумерным массивов в качестве параметра C++
C++ Глобальное задание массива в качестве параметра функции
C++ Вызов функции с ссылкой на структуру в качестве параметра
C++ Передача функции в качестве параметра функции
Указатель на функцию в качестве параметра функции C++
C++ Передача CString в качестве параметра функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
19.11.2012, 18:20     Динамический массив структуры в качестве параметра функции #2
Ну передаёшь правильно. Я вроде бы криминала не вижу.
А вызываешь ну просто
C++
1
2
3
4
5
6
7
8
void main()
{
int size=10;
Embedded* A=new Embedded[size];
double* b=new double[size];
derivatives(size,A,b);
return;
}
Просто объявляешь параметры такого же типа и передаёшь в функцию, ну при вызове.
ok40
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 25
19.11.2012, 18:27  [ТС]     Динамический массив структуры в качестве параметра функции #3
Вроде бы также и делаю, но ругается почему-то

main.cpp:26: error: Б─≤EmbeddedБ─≥ has not been declared
main.cpp: In function Б─≤void derivatives(int, int*, double*)Б─≥:
main.cpp:31: error: request for member Б─≤energyБ─≥ in Б─≤*((emb_energy + 4u) + ((int*)(((long unsigned int)i) * 4ul)))Б─≥, which is of non-class type Б─≤intБ─≥
main.cpp:31: error: request for member Б─≤energyБ─≥ in Б─≤*(((int*)(((long unsigned int)i) * 4ul)) + emb_energy)Б─≥, which is of non-class type Б─≤intБ─≥
main.cpp:31: error: request for member Б─≤densityБ─≥ in Б─≤*((emb_energy + 4u) + ((int*)(((long unsigned int)i) * 4ul)))Б─≥, which is of non-class type Б─≤intБ─≥
main.cpp:31: error: request for member Б─≤densityБ─≥ in Б─≤*(((int*)(((long unsigned int)i) * 4ul)) + emb_energy)Б─≥, which is of non-class type Б─≤intБ─≥
main.cpp: In function Б─≤int main()Б─≥:
main.cpp:65: error: cannot convert Б─≤Embedded*Б─≥ to Б─≤int*Б─≥ for argument Б─≤2Б─≥ to Б─≤void derivatives(int, int*, double*)Б─≥

Соответственно 26 строка - объявление функции, 31 - вычисление внутри функции, 65 - вызов функции
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
19.11.2012, 18:30     Динамический массив структуры в качестве параметра функции #4
ok40, какие-то странные символы у вас в тексте ошибок "Б─"
А функция в курсе, что существует класс Embedded?
ok40
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 25
19.11.2012, 18:32  [ТС]     Динамический массив структуры в качестве параметра функции #5
)))))))) я тормоз, структура описана после функции была. спасибо большое за помощь!
Yandex
Объявления
19.11.2012, 18:32     Динамический массив структуры в качестве параметра функции
Ответ Создать тему
Опции темы

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