Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 699

Раздел: C++
/ вопрос открыт /

Здравствуйте, эксперты!

Сегодня вылезла ошибка "Acess violation.." при попытке добавить строку в Memo или сообщение в StatusBar.
Хотя вчера все было Ок.
Комментирую одну строку, вылетает на следующей. В чем может быть дело?
C++Builder2007

Muratov Radik Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Muratov Radik (статус: Посетитель)
Вопрос отправлен: 27 января 2010, 11:10
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 28; последнее сообщение — 28 января 2010, 10:52; участников в обсуждении: 4.

Страницы: [« Предыдущая] [1] [2]

Вадим К

Вадим К (статус: Академик), 27 января 2010, 15:35 [#21]:

если конструктор пустой, то можно его и не писать. там должна быть начальная инициализация. А что это будет - это известно только автору класса:)
Галочка "подтверждения прочтения" - вселенское зло.
Muratov Radik

Muratov Radik (статус: Посетитель), 27 января 2010, 15:38 [#22]:

Отладка показала, что Size равно тому, что я задаю
Muratov Radik

Muratov Radik (статус: Посетитель), 27 января 2010, 15:40 [#23]:

А деструктор нужен? Я ведь создаю
Data = new unsigned int[Size];

Должен я его удалять?
Вадим К

Вадим К (статус: Академик), 27 января 2010, 15:44 [#24]:

да, конечно. Но не обязательно в деструкторе.
А вот пользоваться отладкой для того, что бы подсмотреть, чему равна переменая - я бы не делал. уже видел примеры того, как объявлялась переменная/макрос с тем же именем и отладчик показывал другое имя.

Попробуйте в целях эксперимента закоментировать весь цикл обнуления. пропадет ошибка?
Галочка "подтверждения прочтения" - вселенское зло.
Muratov Radik

Muratov Radik (статус: Посетитель), 27 января 2010, 16:12 [#25]:

А где лучше объявлять переменные типа моего класса?
Так:
class TMemoryBlock
 {
  public:
   unsigned int StartAddr;
   unsigned int Size;
   unsigned int *Data;
   //
   //TMemoryBlock();
   ~TMemoryBlock();
   //
   void InitData(unsigned int initValue);
   void SaveDataToFile(AnsiString fName, AnsiString blockName);
   void LoadDataFromFile(AnsiString fName, AnsiString blockName);
 };
 //
extern "C++" TMemoryBlock *block1;
extern "C++" TMemoryBlock *block2;
extern "C++" TMemoryBlock *block3;

Или в секции Public формы, где я их использую?
Вадим К

Вадим К (статус: Академик), 27 января 2010, 16:21 [#26]:

где размещать - это вопрос дизайна. тут сложно посоветовать. я может быть сделал бы один класс, в который бы их все заключил - таким образом не надо было бы сколько переменных.
Второе- если есть extern "C++" TMemoryBlock *block1;
то где то должно быть TMemoryBlock *block1;
и не совсем понятно, зачем указывать "С++". как по мне, то лишнее.
Галочка "подтверждения прочтения" - вселенское зло.
Muratov Radik

Muratov Radik (статус: Посетитель), 27 января 2010, 16:22 [#27]:

Цикл убрал, ошибка осталась
Muratov Radik

Muratov Radik (статус: Посетитель), 28 января 2010, 10:52 [#28]:

Всем большое спасибо за помощь! Особенно Вадиму!
Я нашел ошибку.

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 26 апреля 2026, 02:59
Выполнено за 0.03 сек.