Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему не работает следующее...


ProgramMaker_ ©   (2006-08-07 15:49:00) 

Вроде бы все правильно;
 arr1: array of array of Word;
 ...

 SetLength(arr1[i], temp) - здесь возникает ошибка

...


Плохиш   (2006-08-08 10:57:00) [1]


> Ошибка оказалась совсем в другом

Главное искать там где светлее :-)


4yma   (2006-08-08 06:49:00) [2]

ProgramMaker_   (07.08.06 16:53) [11]
Не так

SetLength(arr1, N, M);

Выполняется для каждого индекса
не так SetLength(arr1[i], temp);, а вот так SetLength(arr1, i, temp);


clickmaker   (2006-08-07 17:04:00) [3]


> Несовместимые типы...

да ну?

var
 arr1: array of array of Word;
 i, temp: integer;

 temp := 12;
 i := 1;
 SetLength(arr1[i], temp);

выдал только варниг Variable 'arr1' might not have been initialized


ProgramMaker_   (2006-08-07 17:03:00) [4]

ProgramMaker_   (07.08.06 17:00) [14]
Упс... Извените за беспокойство. Ошибка оказалась совсем в другом...


ProgramMaker_   (2006-08-07 17:00:00) [5]

Плохиш ©   (07.08.06 16:57) [13]
Несовместимые типы...


Плохиш   (2006-08-07 16:57:00) [6]

Хм, и никто до сих пор не спросил, что же это за ошибка такая секретная возникает :-(


StriderMan   (2006-08-07 16:54:00) [7]


> ArtemESC ©   (07.08.06 16:45) [9]
>   Понятно, ошибка возникает на стадии компиляции (то есть
> не компилируется), а не во время выполнения...

Нет, такой код компилируется без ошибок.


ProgramMaker_   (2006-08-07 16:53:00) [8]

4yma ©   (07.08.06 16:50) [10]
Не так
SetLength(arr1,N,M);  arr1 - это будет прямоугольный массив


4yma   (2006-08-07 16:50:00) [9]

SetLength(arr1,N,M);
где Массив размером MxN.

наверное так....


ArtemESC   (2006-08-07 16:45:00) [10]

StriderMan ©   (07.08.06 16:38) [8]
>>да, только элемента с индексом 1 еще не существует в этот момент.

  Понятно, ошибка возникает на стадии компиляции (то есть не компилируется), а не во время выполнения...


StriderMan   (2006-08-07 16:38:00) [11]

"Законы Паскаля" это на что-то из термодинамики. Увы... телепатор пока на стадии проектирования.


> arr1[i] - это же динамический массив, следуя объявлению...


да, только элемента с индексом 1 еще не существует в этот момент.


Сергей М.   (2006-08-07 16:20:00) [12]


> arr1[i] - это же динамический массив, следуя объявлению


И как "динамический массив" соотносится с "законами Паскаля" ?


ProgramMaker_   (2006-08-07 16:17:00) [13]

arr1[i] - это же динамический массив, следуя объявлению...

Так вообще не возможно сделать?


Сергей М.   (2006-08-07 16:04:00) [14]


> по паскалевским законам


Что за законы такие ?!


clickmaker   (2006-08-07 16:03:00) [15]


> ProgramMaker_   (07.08.06 16:02) [3]

в каком кодексе ты такой закон прочел?


ProgramMaker_   (2006-08-07 16:02:00) [16]

сначала надо первое измерение создать
SetLength(arr1, len);

Да это понятно, но по паскалевским законам должно работать...


clickmaker   (2006-08-07 15:54:00) [17]

сначала надо первое измерение создать
SetLength(arr1, len);


Сергей М.   (2006-08-07 15:53:00) [18]


> здесь возникает ошибка


Почему бы ей не возникнуть ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо