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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нарушение прав доступа при чтении http://www.cyberforum.ru/cpp-beginners/thread1227326.html
Вот пишу игру морской бой, решил написать функцию, которая расставляет корабли, при это необходимо их расставлять через одну клетку друг от друга, иначе выдавала бы ошибку, мол тут поставить корабль нельзя, слишком близко к другому, написал вроде, но вылезла ошибка при запуске, нарушение прав доступа при чтении... Скрин сделал вложением. #include <stdio.h> #include <stdlib.h> #include...
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 2008 SDK\Include и C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\amd64 а также на вход линковщика msmpi.lib компилятор не ругается, но в процессе линковки выдаются ошибки main.obj : error...
C++ Зачем нужно добавлять файлы в файлы исходного кода
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как вызвать из main.cpp другой файл?
C++ Организация вызовов функций http://www.cyberforum.ru/cpp-beginners/thread1227239.html
Добрый день! У меня следующий вопрос. Есть функция foo(x, y, z, type1, type2), которая в свою очередь последовательно вызывает другие функции внутри себя в зависимости от значений аргументов type1 и type2 . Визуально это можно представить так: В зависимости от аргументов type1 и type2 функции должны вызваться в разном порядке. Проблема в том, что аргменты type1 и type2 могут принимать...
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
 
Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru