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

Передать массив структур в функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нарушение прав доступа при чтении http://www.cyberforum.ru/cpp-beginners/thread1227326.html
Вот пишу игру морской бой, решил написать функцию, которая расставляет корабли, при это необходимо их расставлять через одну клетку друг от друга, иначе выдавала бы ошибку, мол тут поставить корабль...
C++ Программа закрывается после решения первого уравнения. Как продолжить ее выполнение? Здравствуйте форумчани! Нужна ваша помощь... Задача простая, начал изучать С++ не так давно, но хз как реализовать, вообщем суть: Есть система уровнений, нада ее решить, через операторы if, else ... http://www.cyberforum.ru/cpp-beginners/thread1227321.html
Подключение MPI в VS2010 - В процессе линковки выдаются ошибки C++
Здравствуйте, нужно скомпилировать проект с mpi. Писался он под линуксом, но я хочу под виндой. VS2010, скачал Microsoft HPC Pack 2008. Указал как сказано пути - C:\Program Files\Microsoft HPC Pack...
C++ Зачем нужно добавлять файлы в файлы исходного кода
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как вызвать из main.cpp другой файл?
C++ Организация вызовов функций http://www.cyberforum.ru/cpp-beginners/thread1227239.html
Добрый день! У меня следующий вопрос. Есть функция foo(x, y, z, type1, type2), которая в свою очередь последовательно вызывает другие функции внутри себя в зависимости от значений аргументов type1 и...
C++ Какой вариант оформления функции лучше? Допустим, есть функция, которая что-то делает и, возвращает булево значение, в зависимости от того, получилось это сделать или нет. //Вариант 1 bool func(int a) { if (a != 0) { /*... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
15.07.2014, 20:49
Цитата Сообщение от phtnr Посмотреть сообщение
То есть почему функция теперь возвращать должна поле структуры? Почему не получается сделать по аналогии с массивами, ведь как я понимаю структура в памяти размещается так же последовательно. Т.е. техническая часть вопроса тоже интересна
- Мне показалось что модификация массива структур по указателю будет не столь очевидна как с явным возвратом из функции, поэтому сделал с возвратом. Конечно же с массивом структур можно работать как с обычным массивом.

Добавлено через 3 минуты
phtnr, вот вариант с работой через указатель
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;
 
struct sData{
    int val;
};
 
void MakeAdd(sData * Arr, int N, int val);
 
int main()
{
    int i;
    sData * Arr = new sData[256];
    cout<<"\tINPUT : "<<endl;
    for( i = 0; i < 16; i++ )
        cout<<"STRUCT # "<<i + 1<<" VAL : "<<(Arr[i].val = i)<<endl;
    MakeAdd(Arr, 8, -8);
    cout<<"\tOUTPUT : "<<endl;
    for( i = 0; i < 16; i++ )
        cout<<"STRUCT # "<<i + 1<<" VAL : "<<Arr[i].val<<endl;
    return 0;
}
 
void MakeAdd(sData * Arr, int N, int val)
{
    for( int i = 0; i < N; i++ )
        Arr[i].val += val;
}
http://codepad.org/PlYPRlKS
INPUT :
STRUCT # 1 VAL : 0
STRUCT # 2 VAL : 1
STRUCT # 3 VAL : 2
STRUCT # 4 VAL : 3
STRUCT # 5 VAL : 4
STRUCT # 6 VAL : 5
STRUCT # 7 VAL : 6
STRUCT # 8 VAL : 7
STRUCT # 9 VAL : 8
STRUCT # 10 VAL : 9
STRUCT # 11 VAL : 10
STRUCT # 12 VAL : 11
STRUCT # 13 VAL : 12
STRUCT # 14 VAL : 13
STRUCT # 15 VAL : 14
STRUCT # 16 VAL : 15
OUTPUT :
STRUCT # 1 VAL : -8
STRUCT # 2 VAL : -7
STRUCT # 3 VAL : -6
STRUCT # 4 VAL : -5
STRUCT # 5 VAL : -4
STRUCT # 6 VAL : -3
STRUCT # 7 VAL : -2
STRUCT # 8 VAL : -1
STRUCT # 9 VAL : 8
STRUCT # 10 VAL : 9
STRUCT # 11 VAL : 10
STRUCT # 12 VAL : 11
STRUCT # 13 VAL : 12
STRUCT # 14 VAL : 13
STRUCT # 15 VAL : 14
STRUCT # 16 VAL : 15
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru