Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2011, 16:58   #1
Skender
Пользователь
 
Регистрация: 27.08.2011
Сообщений: 21
По умолчанию Ошибка работы с памятью

Имееться код все работает правильно , но программа падает при выполнении деструктора подскажите в чем ошибка
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
typedef double DB;
class system_unit
{
protected:
DB price;
char *name;
public:
system_unit(char*N,DB PRICE);
~system_unit(){delete []name;}
system_unit(system_unit &brand);
void SetPrice(DB PRICE){price=PRICE;}
int get(){return strlen(name);}
DB GetPrice()const{return price;}
void print(){cout<<name<<endl;};
};
system_unit::system_unit(char *N,DB PRICE)
{
int size=strlen(N);
name=new char[size];
if (name==NULL)
{
cout<<"Memory blocked\n";
exit(1);
}
strcpy(name,N);
price=PRICE;
}
system_unit::system_unit(system_uni t &brand)
{
name=new char [brand.get()];
if (name==NULL)
{
cout<<"Memory blocked\n";
exit(1);
}
strcpy(name,brand.name);

}
int main()
{
system_unit C("SAMSUNG",250.500);
C.print();
cout<<C.GetPrice()<<endl;
system_unit B(C);
B.print();
return 0;
}
Skender вне форума Ответить с цитированием
Старый 07.09.2011, 17:30   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Код:
name=new char[size];
Код:
name=new char [brand.get()];
Типичная ошибка. Где место под завершающий ноль?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка работы с Word в Windows XP tumanovalex C# (си шарп) 3 09.09.2011 13:18
ошибка в работе с динамической памятью thrashkid Общие вопросы C/C++ 8 30.06.2011 00:48
Узнать адрес кучи (визуализация работы с памятью). Nubilius Win Api 6 02.01.2011 09:16
Ошибка работы с памятью Alex Cones Общие вопросы Delphi 4 04.12.2010 06:45
Вышла ошибка во время работы ... HAMMAN Microsoft Office Excel 6 25.03.2010 11:49