Si, eso lo habia supuesto. Lo que no me cuadra es que me deje acceder a dichas zonas protegidas en tiempo de ejecución y que el error me lo de al salir. Lo que tampoco me cuadra es que esto ocurra solo cuando reservo la memoria en una función que retorna un valor, pero que no ocurra cuando la reservo en una función void. La verdad es que no hay mucho mas codigo que enseñar, si eso mas tarde copypasteo la función entera y el main.
Gracias por las respuestas, un saludo.
Gracias por las respuestas, un saludo.