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

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

Войти
Регистрация
Восстановить пароль
 
Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 122
#1

Почему-то массив структур в классе не работает - C++

05.09.2014, 20:45. Просмотров 302. Ответов 5
Метки нет (Все метки)

Собственно код компилится, но вылетает в отладчике сообщение!
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
#include <iostream>
using namespace std;
class Map_object{
 
public:
    struct Object{
        int x;
        int y;
    };
 
    Object object[20];
 
};
 
 
int main(){
    Map_object map_object;
    map_object.object[20].x = 1222;
    map_object.object[20].y = 10;
    cout << "X: " << map_object.object[100].x <<endl;
    cout << "Y: " << map_object.object[100].y <<endl;
    system("pause");
    return 0;
}
Run-Time Check Failure #3 - The variable 'map_object' is being used without being initialized.
---------------------------------------------
Еще вопросик такой:
Мне нужно установить кол-во экземпляров из распарсенного текста чтобы память не занимало, как сделать?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2014, 20:45     Почему-то массив структур в классе не работает
Посмотрите здесь:

Массив структур в классе - C++
Задача состоит в том, что создаётся структура с полями &quot;дело&quot;, &quot;время начала&quot;, &quot;время окончания&quot; и создаётся класс с методами реализации...

Почему EnumChildWindows не работает в классе? - C++
У меня есть класс, в нем 2 функции - 1я функция: BOOL CALLBACK MyClass::BigButtonEnum(HWND hwnd, LPARAM) { GetWindowText(hwnd,...

Почему не записывается символьный массив в классе? - C++
в отмеченном месте выдает ошибку доступа для записи в первом случае, во втором все нормально, почему? #include&lt;iostream&gt; using...

Почему не очищает память, выделенную под массив структур - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; const int ar_size=20; struct CandyBar { char name; double...

Выделение памяти под массив в классе. Почему не могу правильно выделить? - C++
Все привет! не могу понять почему в классе не получается выделить память из стека для массива. Есть класс: Надо чтоб конструктор класса...

Массив структур. Работает на 1/10 - C++
Задание такое: Описать структуру, для хранения информации о работниках(ФИО, должность, дата поступления на работу), ввод производить с...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
05.09.2014, 20:55     Почему-то массив структур в классе не работает #2
Валеркуй, массив у тебя только на 20 элементов, а ты сперва в 21-й что-то записываешь. а потом выводишь еще 101-й. Ясное дело это не верно.
Цитата Сообщение от Валеркуй Посмотреть сообщение
Мне нужно установить кол-во экземпляров из распарсенного текста чтобы память не занимало, как сделать?
std::vector
Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 122
05.09.2014, 21:00  [ТС]     Почему-то массив структур в классе не работает #3
А по ошибке? чет я уже верчу кручу а оно ни туда не сюда!
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
05.09.2014, 21:05     Почему-то массив структур в классе не работает #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Валеркуй Посмотреть сообщение
А по ошибке? чет я уже верчу кручу а оно ни туда не сюда!
Что по ошибке?
Я же написал, ты определил массив из 20 элементов, а пытаешься обращаться к 21 и 101.

Добавлено через 2 минуты
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
#include <iostream>
using namespace std;
class Map_object{
 
public:
    struct Object{
        int x;
        int y;
    };
 
    Object object[20];
 
};
 
 
int main(){
    Map_object map_object;
 // map_object.object[n], диапазон n от 0 до 19
    map_object.object[0].x = 1222;
    map_object.object[0].y = 10;
    cout << "X: " << map_object.object[0].x <<endl; 
    cout << "Y: " << map_object.object[0].y <<endl;
    system("pause");
    return 0;
}
Валеркуй
2 / 2 / 0
Регистрация: 17.06.2013
Сообщений: 122
05.09.2014, 21:09  [ТС]     Почему-то массив структур в классе не работает #5
Ай дурачек я, спасибо! Уже как год к этим массивам не привыкну!
Так а чем-то можно заменить число 20 на переменную? Я так понял вектором?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2014, 21:23     Почему-то массив структур в классе не работает
Еще ссылки по теме:

Массив структур, не работает сортировка - C++
#include &lt;iostream&gt; #include&lt;cstdlib&gt; #include&lt;ctime&gt; #include &lt;string.h&gt; using namespace std; struct student { int...

Динамический массив структур. Почему данные доступны после выполнения операции delete [] - C++
Всем привет! Выполнил вот такое задание. После того как вывелись данные трех структур, очищаю выделенную область памяти оператором delete...

Блочная сортировка структур (Отсортировать массив структур по фамилии) - C++
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно отсортировать массив структур по фамилии.

Не работает, если массив динамический ?! Почему? - C++
Простая задача, есть текст , удалить из него набор символов, вот код - все работает -&gt; char c...


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

Или воспользуйтесь поиском по форуму:
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
05.09.2014, 21:23     Почему-то массив структур в классе не работает #6
Цитата Сообщение от Валеркуй Посмотреть сообщение
Я так понял вектором?
Тебе нужен здесь какой-либо динамический массив. Да, вектор подойдет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Map_object{
 
public:
    struct Object{
        int x;
        int y;
    };
 
    std::vector<Object> object;
 
    Map_object(size_t elements = 0)
        : object(elements)
    {}
};
Yandex
Объявления
05.09.2014, 21:23     Почему-то массив структур в классе не работает
Ответ Создать тему
Опции темы

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