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

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

15.04.2017, 18:31. Показов 670. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2017, 18:31
Ответы с готовыми решениями:

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

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

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

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

7
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
15.04.2017, 19:15 2
Цитата Сообщение от 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  [ТС] 3
mishelle92, так мне нужно присвоить i-ому элементу массива адрес на структуру. Как это корректно сделать?

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

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

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

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
15.04.2017, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2017, 20:56
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru