1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97

Копирование структурных переменных

15.04.2017, 18:31. Показов 770. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот я создал структуру и хочу ее передать в массив (сделать массив структур). После копирования, я не могу получтиь доступ по индексу:

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
29
#include "stdafx.h"
#include<iostream>
using namespace std;
 
struct MyStruct
{
    int a=9;
};
 
MyStruct *f;
 
 
int main()
{
 
    MyStruct arr[4];
 
    
    for (int i = 0; i < 1; i++) {
 
        arr[i] = *f;
    }
 
     arr[0]->a;// вот тут показывает ошибку
 
    cout << endl;
    system("pause");
    return 0;
}
Как создать массив структур? Динамический\не динамический- любой. Важо что бы я мог работать с массивом по индексно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2017, 18:31
Ответы с готовыми решениями:

Поменять местами строки в массиве структурных переменных
A- массив структурных переменных. Нужно поменять местами строки A и A struct Q { int N; char H; }; int main() ...

Для чего используеться передача структурных переменных в функцию?
Вообщем прошу помощи. 1) Для чего используеться передача структурных переменных в функцию? Как производиться доступ к полям структуры?...

Перевод в часы, минуты и секунды для структурных переменных
Дело в том, что неправильно переводит. По идее вроде вычисления должны быть верными, но не работает. Возможно опять моя невнимательность. ...

7
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
15.04.2017, 19:15
Цитата Сообщение от Rec_cm Посмотреть сообщение
Как создать массив структур?
Вы это уже сделали:
C++
1
MyStruct arr[4];
Добавлено через 1 минуту
А в строке
C++
1
arr[i] = *f;
вы разыменоваваете неинициализированный указатель.
0
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
15.04.2017, 19:19  [ТС]
mishelle92, так мне нужно присвоить i-ому элементу массива адрес на структуру. Как это корректно сделать?

Добавлено через 1 минуту
mishelle92, вопрос как раз и состоит в том, что я не могу по i-ому номеру массива обратиться к эллементом структурной переменой
0
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
15.04.2017, 19:21
Цитата Сообщение от Rec_cm Посмотреть сообщение
нужно присвоить i-ому элементу массива адрес на структуру
У вас массив структур, а не массив указателей на структуру.

Цитата Сообщение от Rec_cm Посмотреть сообщение
я не могу по i-ому номеру массива обратиться к эллементом структурной переменой
Почему же не можете? arr[0]->a; Вот вам и обращение к нулевому элементу. Попробуйте из своей программы убрать цикл for (вместе с телом), увидите, что всё получается.
0
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
15.04.2017, 19:29  [ТС]
mishelle92, мне нужнн массив указатель на структуры, тогда мне будет просто обратиться к любой структурной переменной обратившись к нужному элементу массива

Добавлено через 1 минуту
mishelle92, у меня динамическая очередь структур и я хочу (копировать) все элементы этой очереди в массив, для дальнего изменения структурных элементов
0
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
15.04.2017, 19:36
Ещё одно дополнение к моему сообщению. Надо писать arr[0].a.
А если вы хотите массив указателей, то с этого и надо было начинать.
0
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
15.04.2017, 19:51  [ТС]
mishelle92, так что? вы знаете где, в таком случае, у меня ошибка?
0
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
15.04.2017, 20:56
Ваша ошибка в неверно сформулированном вопросе. Давайте лучше примеры приведу.

C++
1
2
3
4
5
6
7
8
MyStruct arr[4]; // массив структур
std::cout << arr[0].a; // вывод поля "a" нулевого элемента из этого массива
 
MyStruct *parr[4]; // массив указателей
parr[0] = nullptr; // нулевому элементу присвоили nullptr
parr[1] = new MyStruct(); // выделили память и указатель запомнили в 1-ом элементе массива (не забываем delete)
parr[2] = &arr[0]; // во второй элемент записали адрес существующего объекта
parr[0]->a = 89; // присвоили полю "a" нулевого элемента значение
Попробуйте привести пример кода (не обязательно комплилирующегося), где будет продемонстрировано что именно вы хотите сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2017, 20:56
Помогаю со студенческими работами здесь

Парсер сайта, копирование нескольких переменных по одному условию
Добрый день! Столкнулся с проблемой, в исходном коде сайта есть: &lt;td class=td_field&gt;-&lt;/td&gt; &lt;td...

Моделирование структурных автоматов
Здравствуйте, помогите решить задачу. Задача построить автоматную сеть, состоящую из двух дискретных устройств M1 и M2. Режим работы...

Вывод структурных типов данных
type zapis=record nomer:integer; fio:string; voz:integer; end; stud=array of zapis; var R:stud;

Перемножение структурных чисел в Matlab
Всем добра и счастья!!! Проблема такая, существуют так называемые структурные (числа они напоминают матрицы но это не матрицы) и меня...

Преобразование структурных схем, ТАУ
Заранее прошу прощения если я ошибся с разделом для опроса. Мне необходимо преобразовать схему изображенную на рисунке (по прямому и по...


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

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

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru