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

Ошибка сегментации... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ошибка vs http://www.cyberforum.ru/cpp/thread81480.html
когда пытаюсь запустить игру выходит ошибка http://www.cyberforum.ru/games/thread42138-page2.html мне кажется что это из-за visual studio , помогите может кто знает в чём проблема. Добавлено...
C++ ввод матриц Есть задача "Написать и протестировать функцию для сложения и вычитания вещественных матриц. Одним из формальных параметров должен быть признак вида операции." Возник вопрос: по задаче должны... http://www.cyberforum.ru/cpp/thread81352.html
Как заменить часть содержимого файла? C++
В программе имеется класс Person, и объект User. Когда пытаюсь заменить часть содержимого файла, вместо этого происходит очередная запись. Как это исправить? Вот например: fstream File;...
C++ Как упростить эту запись:
Вообще не понимаю, что эта запись подразумевает, и зачем она нужна. может кто растолкует... fl_h.read((char*)&xRec,sizeof(DtbRec)); Сама программа строк на 650, поэтому вкратце: fl_h - это...
C++ Пояснитее как работает эта программа... http://www.cyberforum.ru/cpp/thread80951.html
#include <cstdlib> #include "Class.h" using namespace std; int main(int argc, char *argv) { cout << "VVedite maximalnii razmer mnojectva" << endl;
C++ Программа с шаблонами: Написал простенькую программу с шаблонами, но компилятору она не нравится. Подскажите, как переделать? #include <iostream> using namespace std; template< class T > T max(T a, T b) { if(a... подробнее

Показать сообщение отдельно
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224

Ошибка сегментации... - C++

29.12.2009, 22:27. Просмотров 578. Ответов 3
Метки (Все метки)

Пытаюсь написать программу, которая может хранить массив из произвольного числа объектов класса.
Но при попытке записать данные в класс, программа вылетает. Как же быть?

Оператор new - НЕ подходит, т. к. количество объектов массива может быть изменено в любой момент, и следовательно, память будет постоянно "перевысвобождаться".

Вот эксиз класса:

C++
1
2
3
4
5
6
7
8
9
10
class person
{
    public:
        
        void SetName(string name) { _name=name;}
        void SetAge(int age)    { _age =age; }
    private:
        string _name;
        int _age;
};
И вот функция:

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
...
string name;
int age;
int count=0;
 
person* users=NULL;
for(;;)
{
    cout << "Person " << count+1 << ": ";
    cout << endl << "Age (0 to exit): ";
    cin >> age;
    if(age==0)  break;
    cout << "Name: ";   cin >> name;
    count++;
    users=(person*)realloc(users, count*sizeof(person));
        
    if(users==NULL)
    {
        cout << "Error allocating memory!" << endl;
        exit(1);
    }
 
            // ЗДЕСЬ ВЫЛЕТАЕТ
 
    users[count-1].SetName(name);
    users[count-1].SetAge(age);
}
...
free(users);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru