Disclaimer: Esto es una suposición mia. No conozco la implementación de arrays dinámicos.
El problema debe estar en que un array reserva memoria desde una posición en adelante.
En el caso de arrays dinámicos, la segunda dimension, seguramente, serán punteros a otras posiciones de memoria que no serán contiguas.
Supongo que podrías hacer un for con la primera dimensión e inicializar la segunda con FillChar.
Código:
x Memoria libre
0 Memoria utilizada por la estructura
P Puntero
Estatico : array [3, 3] --> Memoria: xxxx[000000000]xxxxxxxxx
Dinámico : array [3, 3] --> Memoria: xxxx[PPP]xxxx[000]xxx[000]xxx[000]
||+------^ ^ ^
|+---------------+ |
+------------------------+
Código Delphi
[-]
var
cc : array of array of real;
...
SetLength(cc, numX, numY);
...
for i := 0 to numX-1 do
FillChar(cc[numX], SizeOf(cc[numX]), 0);