Вниз
Скачать: CL | DM;

Динамические массивы. Плохо всё.   Найти похожие ветки 

← →
Mihey ©   (2003-07-02 23:26) [0]

Вот код, причатсный к делу:

type TTankData = record
Coord: TPoint;
Index: Integer;
Strength: Integer;
end;

Tanks: array of TTankData;

procedure LoadTankPositions;
begin
Tanks[1].Coord.x := 100;
Tanks[1].Coord.y := 100;
Tanks[1].Index := 1;
end;

procedure CreateTankEngine;
begin
TankCount := 1;
SetLength(Tanks, 1);
LoadTankPositions;
end;

Я так полагаю, что больше ничто не влияет. И вот этот код по завершении программы вызывает AV. Что делать? Причём, если убрать LoadTankPositions, то AV не вызывается.


← →
Mihey ©   (2003-07-02 23:38) [1]

И вы знаете, что самое плохое - я сейчас этот код выполнил в другой программе, просто скопировал вот это, что написал, и выполнил - и всё нормально.

В общем, проблемы, я подозреваю, с динамическим массивом, но что конкретно - увы, не хватает опыта.


← →
Makhanev A.S. ©   (2003-07-02 23:39) [2]

Нумераци в массивах обычно с нуля, т.е. при Length=1 :

procedure LoadTankPositions;
begin
Tanks[0].Coord.x := 100;
Tanks[0].Coord.y := 100;
Tanks[0].Index := 1;
end;


← →
Mihey ©   (2003-07-02 23:52) [3]

Вот тут то я и дошёл. Вот сейчас увеличил на единицу массив и всё запахало. Блин, такой ньанс. Типа, SetLength устанавливает не верхнюю границу, а количество элементов.


← →
Mihey ©   (2003-07-02 23:52) [4]

Спасибо, вопрос исчерпан.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
14-55805
Мазут Береговой
2003-06-30 10:54
2003.07.17
К спецам по играм


14-55737
Johnmen
2003-07-02 13:06
2003.07.17
Ясность ? Ясность... Ясность !


14-55803
cyborg
2003-07-01 00:46
2003.07.17
Осторожно, идиотские инструкции!


14-55807
Кен
2003-06-19 04:48
2003.07.17
Установил Дельфи 7 трайальную версию. Она меня поблагодарила за


6-55703
sfairat
2003-05-11 00:26
2003.07.17
http-server




   Наверх