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

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

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

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

19.11.2012, 18:09. Просмотров 737. Ответов 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);
}
}

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

Двумерный массив в качестве параметра функции - C++
почему не удаётся передать в качестве параметра двумерный массив? #include &lt;iostream.h&gt; int sum(const int** mas, const int...

Как передать массив структур в функцию в качестве параметра, чтобы изменения в функции меняли исходный массив? - C++
Допустим есть структура struct Base { int a; int b; int c; }; В основном методе main() объявим массив...

Передача функции в качестве параметра - C++
Как передать функцию с параметрами в transform? Т.е., например, мне надо из каждого числа вектора вычесть число k с помощью transform'а,...

Функции, передача массива в качестве параметра - C++
Приветствую) Собственно, есть простенькое задание с двумерными массивами, оно выполнено: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; ...

Указатель на функцию в качестве параметра функции - C++
ln(1-x)+sinx необходимо создать программу демонстрирующую возможность использования указателя на некоторую функцию в качестве параметра...

Передача CString в качестве параметра функции - C++
Добрый всем вечер! Мучает один вопрос, на который не могу найти ответ. Как наилучшим образом передавать объект класса CString в...

4
Wolkodav
604 / 457 / 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;
}
Просто объявляешь параметры такого же типа и передаёшь в функцию, ну при вызове.
1
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 - вызов функции
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
19.11.2012, 18:30 #4
ok40, какие-то странные символы у вас в тексте ошибок "Б─"
А функция в курсе, что существует класс Embedded?
0
ok40
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 25
19.11.2012, 18:32  [ТС] #5
)))))))) я тормоз, структура описана после функции была. спасибо большое за помощь!
0
19.11.2012, 18:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2012, 18:32
Привет! Вот еще темы с ответами:

Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию - C++
помогите решить задачу в с++ создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив,...

Передача функции в качестве параметра функции - C++
Дорогие форумчане! Повторяю пример из книжки. До конца не понял его! Помогите разобраться! Тема: односвязный линейный список. Плюс,...

Как передать итератор в качестве параметра функции? - C++
хочу вызвать функцию как-то так: show_string(std::cout, line.begin(), line.end()); в качестве line.begin() и line.end() выступают...

Глобальное задание массива в качестве параметра функции - C++
Дамы и господа, такой вопрос. Работаю с классами и функциями, и мне необходимо сделать так, чтобы значения в массиве сохранялись после...


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

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

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