Quindi la free, in debug, si accorge che il blocco e' stato "sporcato" da scritture di dati che hanno superato il blocco stesso.

Devi quindi controllare, riga per riga, quello che c'e' tra la malloc e la free perche' il problema e' in quelle righe.

Mi lascia perplesso il fatto che tu allochi memoria con

LenRecord-2

e poi usi i dati nell'array a partire da

i=10

senza controllare effettivamente se questo valore va oltre quello allocato ... insomma, ci sono parecchi punti che possono causare il problema.