ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Массив записей (проблема с доступом) [Delphi]
  #1  
Старый 29.03.2010, 20:22
mr. ZetRikS
Познающий
Регистрация: 17.07.2009
Сообщений: 47
Провел на форуме:
131272

Репутация: 4
Question Массив записей (проблема с доступом) [Delphi]

Вот собственно суть проблемы есть несколько типов:
Код:
//тип 1
type
  TTMyType1 = Record
   isLinked: SmallInt; 
   ToT: string;
   ToC: Integer;
end;

//тип 2
type
  PMyType2 = ^TMyType2;
  TMyType2 = record
   CNa: string;
   CTy: SmallInt;
   isa: SmallInt;
   Sa: TTMyType1;
end;

//тип 3
type
  PMyType3 = ^TMyType3;
  TMyType3 = record
   ExName: string;
   ExParam: array [0..100] of PMyType2;
end;
Вот... далее создаём глобальную переменную типа массив PMyType3, и пытаемся поюзать...

var
qwerty: array [0..10] of PMyType3; //создали массив записей типа PMyType3

и далее где угодно в программе пытаемся поюзать
qwerty[i].ExName:= 'текст_значения';
и так далее, но вот трабл, при таком обращении программка говорит Access violaton бла бла бла, в общем на сколько я понял, объект вроде как есть, но память под него не выделена, хотя он не динамичен, то есть размеры объявлены заранее...

варианты решения проблемы?
заранее спс...
 
Ответить с цитированием

  #2  
Старый 29.03.2010, 22:39
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

Нужно выделять память с помощью процедуры New, и освобождать с помощью Dispose.
То есть:
Код:
var
  test: PMyType3;
begin
  New(test);
  test.ExName:= 'текст_значения';
  ...
  Dispose(test);
end;
По моему так должно быть, хотя точно не уверен.
 
Ответить с цитированием

  #3  
Старый 30.03.2010, 00:32
maestro-ant
Новичок
Регистрация: 08.01.2007
Сообщений: 25
Провел на форуме:
25858

Репутация: 5
По умолчанию

Chrome~
Неправильно подсказываешь! Память у него уже выделена.

mr. ZetRikS
проблема в том что ты создаешь массив из указателей на указатели. и пытаешься к нему обратится на прямую.

вот так объяви массив
Код:
qwerty: array [0..10] of TMyType3;
и будет все гуд

ЗЫ Пользуйтесь отладчиками

Последний раз редактировалось maestro-ant; 30.03.2010 в 00:35..
 
Ответить с цитированием

  #4  
Старый 30.03.2010, 01:05
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

Да нет же, maestro-ant, это ты не умеешь правильно работать с динамической памятью.

Посмотри, как правильно должно быть реализовано в данном случае:

Цитата:
http://slil.ru/28877453
http://rapidshare.com/files/369686671/Test.rar.html
 
Ответить с цитированием

  #5  
Старый 30.03.2010, 01:40
mr. ZetRikS
Познающий
Регистрация: 17.07.2009
Сообщений: 47
Провел на форуме:
131272

Репутация: 4
По умолчанию

Так и есть, вопрос исчерпан...

правд ещё косяк был, пришлось в типе 3 вместо PMyType2 использовать так же тип, а не указатель на него...

Всегда так работал (за пять лет таких проблем не случалось), а тут подсказали мол лучше использовать указатели на тип... Для чего особо не понял, но вот собственно и парился пару дней, кстати с типом пробовал, но так как в типе 3 есть переменная ууказателя на тип, вот тут косяк и не увидел, только сейчас когда подсказали узрел...

Спасибо что уделили время моей проблеме... поставил + обим...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Проблема с символом "&" в post-запросе frxmaster С/С++, C#, Delphi, .NET, Asm 8 29.01.2010 03:39
[delphi] Проблема компиляции R1der23 С/С++, C#, Delphi, .NET, Asm 10 20.12.2009 22:24
Проблема с отображением записей реестра _nic С/С++, C#, Delphi, .NET, Asm 3 31.03.2009 02:02
Ошибки Windows dinar_007 Windows 19 01.07.2007 13:32
Проблема с доступом в закрытый форума Ipb 2.0.3, имея хеш администратора S1nt3z Форумы 17 05.06.2005 17:18



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ