Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Указатель на многомерный массив (Pascal) (http://forum.oszone.net/showthread.php?t=155424)

Kowu 02-11-2009 10:28 1259064

Указатель на многомерный массив (Pascal)
 
Я пишу:
Код:

type MatS=array[1..1,1..1] of longint;
PMatS = ^MatS;
var Mat: PMatS
    ...     
{$R-}
for i:=1 to N do
 for j:=1 to N do
  Mat^[i,j]:=0;

Глюк возникает на первой же итерации цикла. Компилятор дал элементу Mat^[1,1] значение 30000000 и не хочет превращать его в 0. Когда итерация заканчивается,
выдает ошибку "Процессор выполнил недопустимую инструкцию". По поводу описания типа, нас так учили заполнять динамические массивы вида указатель на массив. Из-за чего могут быть глюки?

pva 02-11-2009 14:53 1259296

Код:

type MatS=array[1..1,1..1] of longint;
Если N>1, то портим память (эффект непредсказуем)

BlackEric 02-11-2009 22:09 1259769

А так же не забываем выделять память под массив.
Код:

GetMem(Mat, SizeOf(MatS));
FillChar(Mat^, SizeOf(MatS), 0);



Время: 07:41.

Время: 07:41.
© OSzone.net 2001-