Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: опять ошибка
Форум программистов > Системное программирование > C, С++ и С Builder > Общие вопросы по С и С++
AlexSaaa
пишу программу из учебника...типа примитивной телефонной книги..


создал клас

Цитата
class person{
int number;
char name[32];
char surname [32];
int age;
char phone[32];
public:
void Add(char*, char*, char*, char*);
int Age();
void print();
void Search();
void Sort ();
};


Цитата
void person::Add(char *name, char *surname, char *b_day, char *phone){
strcpy (this->name,name);
strcpy (this->surname,surname);
strcpy (this->phone,phone);
}
void person::print(){
cout<<surname<<" "<<name<<endl;
cout<<"Phone: "<<phone<<endl;
}

в мейне создал массив
person *list=new person[size];
size изначально 0... по мере вызова Add увеличивается на 1

проблема возникла когда решил обеспечить возможность изменения внесенной информации...

Цитата
cout<<"number of position to change: ";
  cin>>position;
 
  list[position-1].print();
  cin>>name;
  cin>>surname;
  cin>>b_day;
            cin>>phone;
  list[position-1].Add(name, surname, b_day, phone);
  cout<<"Modified info....";
  list[position-1].print();



компилятор ошибки не выдает...но при тестовом выполнении програмы на определеном этапе(при попытке внести изменения получаеться какая-то тарабарщина...) .а на выходе появляется сообщение об ошибке
Цитата
Expression:_CtrlsValidHeapPointer...
shuhobodski
К сожалению Вы не привели весь текст Вашей программы. Но судя по имеющемуся, ошибка вероятно в работе с динамической памятью.
Оператор
person* list=new person[size];
при size=0 выделяет блок памяти размером = 0.
Поэтому, вероятно, попытка записи данных в этот блок динамической памяти и вызывает ошибку на этапе выполнения программы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.