freepascal.ru • Просмотр темы - Двухмерный массив указателей
 

Двухмерный массив указателей

Форум для изучающих FPC и их учителей.

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

Двухмерный массив указателей

Сообщение stesl » 09.04.2018 16:03:32

Снова всем привет!
Если кто заглядывал в тему http://freepascal.ru/forum/viewtopic.php?f=23&t=27493 то возможно поймет, что бьюсь я сейчас над реализацией сети Петри, моделирующую семафор. Ее ска оказалось описать надо ЯВНО. То есть все движения фишек,состояния позиций и переходов, в обчем - северный пушистый зверек.

Ну да ладно. Понадобился мне для этой хиромантии 2-мерный массив, причем 2-й массив этого массива (простите, не знаю как яснее выразиться) должен состоять из указателей
Код: Выделить всё
CONST
P=4; T=3;
TYPE
Pter=^word;
I=array [1..T] of array [1..P] of Pter;
Myu=array [1..P] of word;
VAR
Ivar   :I;
Miu   :Myu;
BEGIN
Ivar[1,1]:=^Miu[1]; Ivar[1,2]:=^(Miu[3]);
END.


Как то не приходилось мне работать с многомерными массивами. Подскажите, почему компилятор против такого присваивания (в теле, и со скобками и без)? И как сделать правильно?
stesl
новенький
 
Сообщения: 31
Зарегистрирован: 30.03.2018 05:40:02

Re: Двухмерный массив указателей

Сообщение wadman » 09.04.2018 16:09:14

Ivar[1,1] := @Mui[1];
wadman
новенький
 
Сообщения: 90
Зарегистрирован: 18.10.2016 15:54:28

Re: Двухмерный массив указателей

Сообщение stesl » 09.04.2018 16:11:40

wadman писал(а):Ivar[1,1] := @Mui[1];

Блин, ну конечно оператор нужен :) Вечно я с этими указателями плыву. Наверно еще его нибудь натуплю - обращусь ;)

Добавлено спустя 53 минуты 16 секунд:
Не прошло и часа...
if (Ivar[1,1]^>0) and (Ivar[1,3]^>0) then

вываливает ошибку 216 в рантайме. Понимаю, что то то некорректно с областью памяти, но не понимаю где
stesl
новенький
 
Сообщения: 31
Зарегистрирован: 30.03.2018 05:40:02

Re: Двухмерный массив указателей

Сообщение pupsik » 09.04.2018 17:12:11

Код: Выделить всё
if (Ivar[1,1]^>0) and (Ivar[1,3]^>0) then
а вы тут за "границы" не лезете, случаем?
Проверьте значение массива. Если не тут то выше партачили.
pupsik
энтузиаст
 
Сообщения: 1116
Зарегистрирован: 20.08.2014 16:20:13

Re: Двухмерный массив указателей

Сообщение stesl » 09.04.2018 17:18:18

pupsik писал(а):Если не тут то выше партачили.

Да, портак нашел уже. Не был инициирован I[1,3], т.е. имели указатель на NIL, но все равно, не идет... пока... ковыряю

Добавлено спустя 11 минут 19 секунд:
Дальше похоже та же тема, но пора спать :) Извините за излишние вопросы. Так бывает - не можешь понять что то, а пока формулируешь это на каком то ресурсе - приходит понимание ;)
stesl
новенький
 
Сообщения: 31
Зарегистрирован: 30.03.2018 05:40:02


Вернуться в Обучение Free Pascal

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 1

Рейтинг@Mail.ru