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

Удаление динамического массива в классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программу, отыскивающую проход по лабиринту http://www.cyberforum.ru/cpp-beginners/thread135927.html
Написать программу, отыскивающую проход по лабиринту, с ис-пользованием контейнерного класса stack из STL. Лабиринт пред-ставляется в виде матрицы, состоящей из квадратов. Каждый квад-рат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со стороны, но не с угла. Программа находит проход через лабиринт, двигаясь от за-данного входа. После...
C++ Структуры в С++ Помогите пожалуйста!! На основе записной книжки (записывается в файл), содержащей сведения о людях (фамилия, год рождения, адрес- город, улица, дом, квартира, место работы или учебы), вывести на экран или отдельных файл по алфавиту список лиц, которые живут в доме, заданном пользователем. Начальные дааные считываеются из файла и отображаются на экране. http://www.cyberforum.ru/cpp-beginners/thread135919.html
C++ макросы
Что имеется в виду в заданиии: Создать определение макроса, который печатает имя, значение и адрес переменной типа int в следующем формате: Имя : fop; значение: 23; адрес: ff46016. Нужно #define применять?
C++ Вычислить сумму элементов , pасположенных на главной диагонали и выше ее.
Дана действительная квадpатная матpица поpядка n (n<=8). Вычислить сумму тех ее элементов , pасположенных на главной диагонали и выше ее,котоpые пpевосходят по величине все элементы, pасположенные ниже главной диагонали. Если таких элементов нет , вывести на экpан соответствующее сообщение. Я понимаю, что прога не сложная, но я просто не догоняю... P.S C#.....
C++ Интернет радио http://www.cyberforum.ru/cpp-beginners/thread135840.html
Подскажите пожалуста как организовать воспроизвидение интернет радио в програме. Есть сайт которий транслирует радио http://www.uhradio.fm Как мне принять етот поток. Добавлено через 36 минут МОжет есть функции для работи с потоком
C++ Не понятные "помехи" в FloatToStr() Кто может объяснить почему после выполнения такого кода: float b = 10.234; Edit1->Text = FloatToStr(b); в Edit1 передается не "10.234", а "10.234000205937" ? подробнее

Показать сообщение отдельно
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232

Удаление динамического массива в классе - C++

26.05.2010, 15:11. Просмотров 818. Ответов 9
Метки (Все метки)

при удаление динамического массива в классе зависает программа... хотя в инете нашел кучу примеров, где написано точно также....

зависание в методе void set_name(char n[]), если не удалять будет утечка памяти?
вроде должно удалять и создавать новый... но оно виснет... не знаю что делать
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#include <iostream>
#include <clocale>
using namespace std;
class student
{
            char *name;
            char *surname;
            char *fname;
            char *adr;
            int phone;
            char *group;
            int stream;
            char *spec;
        public:
            void set_all()
            {
                char *tmp=new char [128];
                int len;
                    cout<<"Введите Имя: ";
                        cin.getline(tmp,127);
                        len=strlen(tmp);
                        name=new char[len];
                        strcpy(name,tmp);
                    cout<<"Введите Фамилию: ";
                        cin.getline(tmp,127);
                        len=strlen(tmp);
                        surname=new char[len];
                        strcpy(surname,tmp);
                    cout<<"Введите Отчество: ";
                        cin.getline(tmp,127);
                        len=strlen(tmp);
                        fname=new char[len];
                        strcpy(fname,tmp);
                    cout<<"Введите Адрес: ";
                        cin.getline(tmp,127);
                        len=strlen(tmp);
                        adr=new char[len];
                        strcpy(adr,tmp);
                    cout<<"Введите Группу: ";
                        cin.getline(tmp,127);
                        len=strlen(tmp);
                        group=new char[len];
                        strcpy(group,tmp);
                    cout<<"Введите Специальность: ";
                        cin.getline(tmp,127);
                        len=strlen(tmp);
                        spec=new char[len];
                        strcpy(spec,tmp);
                    cout<<"Введите Телефон: ";
                        cin>>phone;
                    cout<<"Введите Поток: ";
                        cin>>stream;
                        delete[] tmp;
            }
            void set_name(char n[])
            {
                int len=strlen(n);
                if(name)
                delete name;
                name = new char [len];
                strcpy(name,n);
            }
            void set_surname(char n[])
            {
                int len=strlen(n);
                surname = new char [len];
                strcpy(surname,n);
            }
            void set_fname(char n[])
            {
                int len=strlen(n);
                fname = new char [len];
                strcpy(fname,n);
            }
            void set_adr(char n[])
            {
                int len=strlen(n);
                adr = new char [len];
                strcpy(adr,n);
            }
            void set_group(char n[])
            {
                int len=strlen(n);
                group = new char [len];
                strcpy(group,n);
            }
            void set_spec(char n[])
            {
                int len=strlen(n);
                spec = new char [len];
                strcpy(spec,n);
            }
            void set_phone(int a)
            {
                phone=a;
            }
            void set_stream(int a)
            {
                stream=a;
            }
            void show()
            {
                cout<<"Имя "<<name<<endl;
                cout<<"Фамилия "<<surname<<endl;
                cout<<"Отчество "<<fname<<endl;
                cout<<"Адрес "<<adr<<endl;
                cout<<"Телефон "<<phone<<endl;
                cout<<"Группа "<<group<<endl;
                cout<<"Поток "<<stream<<endl;
                cout<<"Специализация "<<spec<<endl;
            }
            void get_name()
            {
                cout<<name<<endl;
            }
            void get_surname()
            {
                cout<<surname<<endl;
            }
            void get_fname()
            {
                cout<<fname<<endl;
            }
            void get_adr()
            {
                cout<<adr<<endl;
            }
            void get_group()
            {
                cout<<group<<endl;
            }
            void get_spec()
            {
                cout<<spec<<endl;
            }
            void set_phone()
            {
                cout<<phone<<endl;
            }
            void set_stream()
            {
                cout<<stream<<endl;
            }
};
typedef student st;
int main()
{   
    char tmp[128];
    int var;
    setlocale(LC_ALL, "");
    st ob1;
    ob1.set_all();
    ob1.show();
    cin.get();
    cout<<"Введите Имя: ";
    cin.getline(tmp,127);
    ob1.set_name(tmp);
    cout<<"Введите Фамилию: ";
    cin.getline(tmp,127);
    ob1.set_surname(tmp);
    cout<<"Введите Отчество: ";
    cin.getline(tmp,127);
    ob1.set_fname(tmp);
    cout<<"Введите Адрес: ";
    cin.getline(tmp,127);
    ob1.set_adr(tmp);
    cout<<"Введите Группу: ";
    cin.getline(tmp,127);
    ob1.set_group(tmp);
    cout<<"Введите Специальность: ";
    cin.getline(tmp,127);
    ob1.set_spec(tmp);
    cout<<"Введите Телефон: ";
    cin>>var;
    ob1.set_phone(var);
    cout<<"Введите Поток: ";
    cin>>var;
    ob1.set_stream(var);
    ob1.show();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru