Non dipende da Windows o da Linux, anzi, mi sembra strano che non dia errori anche su Linux ...

Non ho visto tutto, ma questo

scanf("%f %f %f", &punt->a);

e' sicuramente sbagliato ... hai 3 campi in input e una sola variabile ??