0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 17
1

При попытке присвоить полям новой структуры значений типа AnsiString появляется ошибка Access Violation

23.05.2015, 18:53. Показов 752. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При попытке присвоить полям новой структуры значений типа AnsiString появляется ошибка. Как я понимаю это связано с памятью, но не пойму в чем именно дело.
Моя структура
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 struct zapis{
   AnsiString name;
   AnsiString prof;
   AnsiString rekviz;
   AnsiString nzak;
   int cost;
   TDate dt;
   struct zapis *next;
   struct zapis *prior;
};
 
struct zapis *start;
struct zapis *last;
Ошибка Access Violation at address появляется при выполнении следующей функции.
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 zapis *info,*old;
 
  if(Edit1->Text=="" || Edit2->Text=="" || Edit3->Text=="" || Edit4->Text=="" || Edit5->Text=="")
   {
     ShowMessage("Заполните все поля!");
     return;
   }
 
   info=(struct zapis *)malloc(sizeof(struct zapis));
   if (!info)
   {
     ShowMessage("Нет свободной памяти!");
     return;
   }
   info->name=Edit1->Text;
   info->prof=Edit2->Text;           //Ошибка указывает на эту строку, если ее закоментировать укажет на следующую.
   info->rekviz=Edit3->Text;       
   info->nzak=Edit4->Text;
   info->cost=StrToInt(Edit5->Text);
   info->dt=DateTimePicker1->Date;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2015, 18:53
Ответы с готовыми решениями:

Ошибка 'access violation' при попытке свернуть форму
я нашел на этом форуме код который открывает форму авторизации перед тем как запустить всю...

Ошибка Access Violation при попытке создать объект класса. В чем может быть проблема?
Код класса unit Unit2; interface uses SysUtils; type ABCMatrix = class private

При попытке присвоить значение типа char одному из полей структуры, выводится некоректное значение
Задание Описать структуру с именем TRAIN, содержащую следующие поля: Название пункта...

При попытке создать переменную-член типа CString в приложении MFC появляется ошибка
При попытке создать переменную-член типа CString в приложении MFC появляется ошибка. В чем может...

2
1121 / 792 / 100
Регистрация: 01.02.2011
Сообщений: 1,874
Записей в блоге: 1
23.05.2015, 19:51 2
Через new создавай, т.к. malloc - это Сишная функция, она с классами не дружит (не вызывает конструкторы классов), а у тебя как раз классы используются в структуре.
1
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 17
24.05.2015, 15:32  [ТС] 3
Спасибо, помогло.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2015, 15:32
Помогаю со студенческими работами здесь

Ошибка "Access violation..." при попытке отсортировать структуру из файла быстрым методом
Собстно ошибко "Project '...' raised exception class EAccessViolation with message 'Access...

Запуск DLL. При работе с потоками появляется ошибка "Access violation"
Здравствуйте, у меня вопрос. Я запускаю dll через консоль с помощью RUNDLL32.EXE В библиотеке...

Access Violation при попытке добавить запись в DBMemo
Всем доброго времени суток. Подключён к БД через компоненты,...

Можно ли полям структуры при их объявлении присвоить значения
A) Да, но только стандартным типам B) Нет C) Да D) Да, но только типам-значениям


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru