2011-04-03 35 views
11

我想知道如何設置多維數組的長度/在Pascal中創建動態多維數組。像SetLength(arr,len)對於一維陣列一樣。我找不到答案。多維數組上的SetLength

+1

有人可能會說pascal不支持多維動態數組,但只支持動態數組的動態數組。 – CodesInChaos 2011-04-03 16:47:16

+2

不是'* only *動態數組的動態數組',而是動態數組動態數組的動態數組,以及動態數組動態數組的動態數組,還有...呃...坦率地說,'多維動態數組'似乎要短得多。 :) – 2011-04-03 17:29:48

回答

17
var 
    arr: array of array of real; 

... 

SetLength(arr, 10, 20); // creates a 10 by 20 matrix 

一個壞的,但等同,這樣做的方法是做

SetLength(arr, 10); 
for i := low(arr) to high(arr) do 
    SetLength(arr[i], 20); 

後一種方法可以讓「非矩形」陣列,但是。

+0

在Free Pascal/Lazarus下正常工作! – matandked 2017-02-11 21:17:22