erreur de segmentation

erreur de segmentation - C - Programmation

Marsh Posté le 22-01-2006 à 07:28:16    

Bonjour,
 
en compilant ce code ,j'ai un seg fault mais je ne vois pas d'erreur.
 
Est ce que vous pourriez m'aider.
 
Merci
 

Code :
  1. void tri(char **tab, int(*cmp)(void *, void *))
  2. {
  3.   char **p1,**p2;
  4.  
  5.   for(p1=tab; *p1!=NULL; p1++)
  6.     for(p2=p1+1; *p2!= NULL; p2++)
  7.       if((*cmp)(*p1,*p2) > 0)
  8. {
  9.   char buf[BUFSIZ];
  10.  
  11.   strcpy(buf,*p1);
  12.  
  13.   strcpy(*p1,*p2);
  14.   strcpy(*p2,buf);
  15.                 }
  16. }
  17. void print(FILE *f, char **tab)
  18. {
  19. for( ; *tab!=NULL; ++tab)
  20. fprintf(f,"%s\n",*tab);
  21. }
  22. int main(int argc, char *argv[])
  23. {
  24.   char **t = malloc(sizeof(char *)*argc);
  25.   if(t == NULL)
  26.     {
  27.       fprintf(stderr,"erreur \n" );
  28.       return EXIT_FAILURE;
  29.     }
  30.  
  31.   unsigned int l,i;
  32.  
  33.   l = (unsigned int) argc-1U;
  34.  
  35.   for(i = 0; i<l; i++)
  36.     {
  37.       t[i] = malloc(strlen(argv[i+1])+1);
  38.       if(t[i] == NULL)
  39. {
  40.   fprintf(stderr,"erreur \n" );
  41.   return EXIT_FAILURE;
  42. }
  43.      
  44.       strcpy(t[i],argv[i+1]);
  45.      
  46.     }
  47.  
  48.   t[l] = NULL;
  49.   print(stdout,t);
  50.   tri(t,&strcmp));
  51.   print(stdout,t);
  52.   return EXIT_SUCCESS;
  53. }

Reply

Marsh Posté le 22-01-2006 à 07:28:16   

Reply

Marsh Posté le 22-01-2006 à 10:34:21    

ligne 56 : t'as pas l'impression qu'il y a un bleme ? [:pingouino]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

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