[ C ] - Question sur les tableaux de pointeurs

- Question sur les tableaux de pointeurs [ C ] - C - Programmation

Marsh Posté le 21-09-2016 à 16:41:57    

Bonjour,
 
Via divers tuto, j'ai a peu près compris le principe des tableaux de pointeurs, mais je n'arrive pas a faire une petite chose.
 
Je créé un tableau de pointeur :  

Code :
  1. int **tab=NULL;

 
 
Puis dans une boucle, je fais un malloc pour y mettre des chaines de caractères que j'ai récupéré dans un fichier :  

Code :
  1. for(i=0; i<5; i++)
  2. {
  3.             tab[i] = (char *)malloc(TAILLE);
  4.             strcpy(tableauDico[i], ChaineFichier);
  5. }


 
Puis j'essaye d'afficher le tableau entier :  

Code :
  1. void afficherTableau(int *tab)
  2. {
  3.     int i = 0;
  4.     for(i=0; i<5; i++)
  5.     {
  6.         printf("tableau[%d][%s]", i, tab[i]);
  7.         printf("\n\n" );
  8.     }
  9. }


 
Le soucis, c'est que j'ai un caractère en plus a la fin des chaines qui me fait passer une ligne. Normal, c'est le caractère de retour a la ligne présent dans les fichiers.
Donc je cherche a supprimer ce fichier, mais je ne sais pas comment faire, étant donné qu'en C, tout est une suite de char ...
 
J'aimerais ajouter dans la fonction un tab[i][X-1], mais ca ne fonctionne pas.
X correspond a la taille de la chaine de caractère récupéré avec un "strlen".
 
Pourriez vous m'indiquer comment faire ?

Reply

Marsh Posté le 21-09-2016 à 16:41:57   

Reply

Marsh Posté le 22-09-2016 à 12:16:02    

tu dois allouer ton tableau de pointeurs manuellement, avant de le remplir avec les pointeurs sur tes tableaux.
 
Pour ton histoire de chaîne, il faut que tu templaces le caractère de fin de ligne (\n) dans ta chaine par un 0 (les chaines en C sont des chaines "à zéro terminal", ou AZT). Il faut donc que tu modifies la chaine avant de la passer en argument de printf.
 


---------------
last.fm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed