le (char *), c'est juste pour caster (forcer le type) du char [256][256], de façon à le traiter comme une chaine et non des blocs caractère.
Pour le compilo, j'utilise le même.
Je pense que ça doit plutôt venir du contenu de ton fichier...
Essaye de l'éditer en exa pour voir les caractères qui constituent la fin de ligne(juste pour vérifier leur nombre, savoir s'il y a \r\n ou seulement \n)...
Si tu veux sautter plus de caractères, tu augmentes la valeur dans le fread.
En fait, à chaque boucle, la lecture du fichier insère aussi les caractères de fin de ligne, mais grâce au repositionnement du buff, tu écrases les caractères qui dépassent la longueur de la ligne. Par contre, je pense que ça doit poser un problème pour la dernière ligne (la 256ème), que tu peux résoudre en ajouttant une ligne au tableau...
Si tu as des questions sur le code, précise les...
Ah, et oui, j'ai testé quand même...

J'ai créé une fichier texte avec 256 caractères par ligne, sur plusieures lignes...