Обрезать двухмерный динамический массив

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Обрезать двухмерный динамический массив

Сообщение Azazaz » 24.07.2016 14:42:20

В общем есть такая процедура
Код: Выделить всё
function SearchDublicates(const PCh: TCharMtDesc; PrLen: byte): TIndexes;
{TIndexes = array of array of word}
const
  IndexInc = 16;                                         
{...}

begin
SetLength(Result, IndexInc);
{здесь постепенно массив заполняться согласно алгоритму,
одномерные массивы из которых состоит Result имеют
разную длину которая вычисляется по мере исполнения}
{...}
{по окончанию алгоритма неиспользованная часть Result обрезается вот так}
SetLength(Result, GroupCnt); {GroupCnt <= Lenght(Result)}
end;

Так вот там где происходит отрезание излишков происходит SIGSEGV. В чем проблема?

Добавлено спустя 2 часа 11 минут 30 секунд:
Я разобрался, у меня была ошибка в описании типа динамического массива.
Код: Выделить всё
SetLength(Result, GroupCnt); {это работает как надо}
Azazaz
новенький
 
Сообщения: 41
Зарегистрирован: 21.04.2015 20:00:03

Re: Обрезать двухмерный динамический массив

Сообщение ElectroGuard » 03.08.2016 17:43:25

не вдаваясь в подробности. можешь попробовать включить поиск переполнения границ и всего такого. обычно помогает.
ElectroGuard
новенький
 
Сообщения: 71
Зарегистрирован: 03.06.2016 12:10:22

Re: Обрезать двухмерный динамический массив

Сообщение Дож » 03.08.2016 18:02:41

ElectroGuard, он же написал неделю назад, что уже разобрался с проблемой.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru