2011-04-03 28 views
11

Me gustaría saber cómo establecer la longitud de matrices multidimensionales/crear matrices multidimensionales dinámicas en Pascal. Al igual que SetLength(arr,len) hace para matrices de una dimensión. No puedo encontrar la respuesta.SetLength en matriz multidimensional

+1

Se podría argumentar que pascal no admite matrices dinámicas multidimensionales, sino solo matrices dinámicas de matrices dinámicas. – CodesInChaos

+2

No '* solo * matrices dinámicas de matrices dinámicas' sino también matrices dinámicas de matrices dinámicas de matrices dinámicas, así como matrices dinámicas de matrices dinámicas de matrices dinámicas de matrices dinámicas, y también ... er ... bueno, francamente , "arreglos dinámicos multidimensionales" parece mucho más corto. :) –

Respuesta

17
var 
    arr: array of array of real; 

... 

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

Un mal, pero equivalente, forma de hacer esto es hacer

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

El último enfoque permite que las matrices no rectangulares "", sin embargo.

+0

¡Funciona correctamente bajo Free Pascal/Lazarus! – matandked

Cuestiones relacionadas