Es que es muy extraño, por lo general no tengo problemas con este lenguaje a no ser por mis propios errores.
Porque ademas, dejando las lineas 11, 23 y 24, y descomentando las lineas 39 y 40, funciona perfectamente;
que en si estas 2 lineas no hacen mas que volver a colocar el mismo valor en el mismo indice del array.
La única explicación que encuentro es que la asignación de un valor de la forma
genera un puntero al valor "mValue" pero no lo copia a otro lugar de la memoria,
y al momento de llegar al EOF este valor se pierde.
En cambio, la asignación de la forma
si copia el valor en otro lado de la memoria, y al llegar al EOF no causa problemas.
Esto también explicaría porque es que el indice 0 es el único que da error,
puesto que es el único que se asigna de la forma mArray = Array(mValue)
el resto de los indices entran en el if y se asignan de la manera mArray(i)= mValue
No he encontrado ningún dato sobre esto, pero de ser así, es un error del lenguaje.