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

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

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

Ответить
Azazaz
новенький
Сообщения: 41
Зарегистрирован: 21.04.2015 19:00:03

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

Сообщение Azazaz »

В общем есть такая процедура

Код: Выделить всё

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); {это работает как надо}
ElectroGuard
новенький
Сообщения: 71
Зарегистрирован: 03.06.2016 11:10:22

Сообщение ElectroGuard »

не вдаваясь в подробности. можешь попробовать включить поиск переполнения границ и всего такого. обычно помогает.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

ElectroGuard, он же написал неделю назад, что уже разобрался с проблемой.
Ответить