Bonjour tout le monde,

Je débute en C et après avoir tester de nombreux langages de programmation pour traiter des gros fichiers on m'a dit que le langage C était le mieux et le plus rapide.
Mon problème est que je dois transposer une fichier de 818155 lignes et 71 colonnes en un fichier de 71 lignes et 818155 colonnes.
Je suis parvenue a faire le script en C et il marche pour de petits fichiers mais pour mon fichier de 818155 lignes il plante et je pense que c'est une question de mémoire.
On m'a dit d'utiliser des pointeurs pour surmonter ce problèmes mais je n'y arrive pas et je ne comprend pas.
Est-ce que quelqu'un peut m'aider a utiliser les pointeurs dans mon script?

Voila mon script qui transpose mon fichier: ll est mon nombre total de ligne et nb_var mon nombre total de colonnes; entree est mon fichier d'entree et sortie est mon fichier en sortie

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 char tab[ll][nb_var][50];
 int ligne = 0;
 int colonne = 0;
 int caractere = 0;
 int lin = 0;
 int col = 0;
 int car = 0;
 char carac;
 
 while ((carac=fgetc(entree)) != EOF)
 {
  if (carac == '\n') { tab[ligne][colonne][caractere] = '\0'; ligne = ligne + 1; colonne = 0; caractere = 0; }
  else if (carac == '\t') { tab[ligne][colonne][caractere] = '\0'; colonne = colonne + 1; caractere = 0; }
  else { tab[ligne][colonne][caractere] = carac; caractere = caractere + 1; }
 }
 
 for(col=0; col < nb_var; col++)
 {
  for(lin=0; lin < ll; lin++)
  {
   while (tab[lin][col][car] != '\0')
   {
    fprintf(sortie,"%c",tab[lin][col][car]);
    car = car + 1;
   }
   fprintf(sortie,"\t");
   car = 0;
  }
  fprintf(sortie,"\n");
  car = 0;
 }
Je stocke mon fichier dans un tableau a 3 dimensions puis je lis se tableau à l'envers pour transposer dans mon fichier de sortie.
Il faudrait que j'utilise un pointeur de tableau (je crois) mais je ne sait pas comment faire.

Est-ce que quelqu'un peut m'aider?

Merci par avance.