debes dar memoria a los dos arrays, ya que no indicas en tiempo de diseño su tamaño. De la manera que lo tienes ahora mismo, son 'punteros nulos'. Prueba con hacer algo antes de usar las variables como
Código Delphi
[-]
getmem(m,numero_de_maps_que_necesitas*sizeof(mapItem);
...
freemem(m);
lo mismo con el otro array dinamico.
PD: por cierto , estas haciendo dobles arrays dinamicos. Ya es eso lo que necesitas?