yartempion | Bonjour,
Je cherche a créer un tableau de pointeur et a le remplir avec des valeurs d'autre pointeur
voici un bout de prog
je fait glisser une fenetre de lecture et lorsque je detecte la chaine client-ip je lis les caracteres suivants sans les conserver tant que ce sont des esp ensuite je concatene les carcteres suivants tant que ce ne sont pas des esp.
Le but etatnt de recupérer la valeur du pointeur de la chaine concatenée pour la mettre dans un tableau de pointeur via la fonction strcpy et la ça coinçe.Quelqu'un peut il voir ce qui cloche dans le principe.
Cordialement
Code :
- int Sup_ACL(begin_line,end_line)
- {
- char **temp_Sup_clientip,**Sup_clientip,*car_int,*add_ip,*temp_add_ip,*temp_Sup_clientip1;
- int resultat5,pos_line,end_line1,long_add_ip,nb_add_ip;
- printf("\nProcedure de suppression" );
- pos_line=begin_line;
- end_line1=end_line;
- nb_add_ip=0;
- if((Sup_clientip=(char**)calloc (10,sizeof(char*)))==NULL)
- {
- perror("\nErreur sur allocation de clientip1" );
- exit(4);
- }
- if((temp_Sup_clientip1=(char*)calloc (1,sizeof(char*)))==NULL)
- {
- perror("\nErreur sur allocation de temp_clientip1" );
- exit(4);
- }
- for(pos_line;pos_line<=end_line1;pos_line++) /*Recher de la chaine client-ip*/
- {
- printf("\nDebut de la boucle for" );
- temp_Sup_clientip=Sup_clientip;
- printf("\navnt le realloc" );
- if((Sup_clientip=(char**)realloc (temp_Sup_clientip,(nb_add_ip+2)*sizeof(char*)))==NULL)
- {
- perror("\nErreur sur reallocation de memoire add_ip" );
- exit(4);
- }
- fseek(Instructions,pos_line,SEEK_SET);
- printf("\navant le read" );
- if((resultat5=fread(temp_Sup_clientip1,sizeof(char),9,Instructions))<1)
- {
- perror("\nErreur de lecture du temp_clientip1 resultat4= %d",resultat5);
- exit(4);
- }
- printf("\navant le strcmp" );
- if(!strcmp(temp_Sup_clientip1,"client-ip" ))
- {
- printf("\nReconnaissance de la chaine client-ip" );
-
- do /*Recherche des add_ip*/
- {
- printf("\ndans la do" );
- if((car_int=(char*)calloc (2,sizeof(char*)))==NULL)
- {
- perror("\nErreur sur allocation de car_esp" );
- exit(4);
- }
- if((resultat5=fread(car_int,sizeof(char),1,Instructions))<1)
- {
- perror("\nErreur de lecture du car_esp resultat4= %d",resultat5);
- exit(4);
- }
- pos_line++;
- printf("\nfin la do %d",*car_int);
- }while(*car_int==32);
-
- long_add_ip=1;
- if((add_ip=(char*)calloc (2,sizeof(char*)))==NULL)
- {
- perror("\nErreur sur allocation de add_ip" );
- exit(4);
- }
-
- do
- {
- if((car_int=(char*)calloc (2,sizeof(char*)))==NULL)
- {
- perror("\nErreur sur allocation de car_esp" );
- exit(4);
- }
- if((resultat5=fread(car_int,sizeof(char),1,Instructions))<1)
- {
- perror("\nErreur de lecture du car_esp resultat4= %d",resultat5);
- exit(4);
- }
- if(car_int!=32)
- {
- temp_add_ip=add_ip;
- printf("\ndans la do %c",*temp_add_ip);
- printf("\naprés reaffectation valeur de strlen %d car_int %c",strlen(temp_add_ip),car_int);
- if((add_ip=(char*)realloc (temp_add_ip,strlen(temp_add_ip)+2))==NULL)
- {
- perror("\nErreur sur reallocation de memoire add_ip" );
- exit(4);
- }
- strcat(add_ip,car_int);
- printf("\nadd_ip %s et car_int %c %d",add_ip,*car_int,*car_int);
- }
- pos_line++;
-
- }while(*car_int!=32);
- printf ("\nSortie de do car_int %d %d %d",*car_int,nb_add_ip,add_ip);
- strcpy(Sup_clientip[nb_add_ip],&add_ip);
- printf("\n apres le strcpy" );
- printf("\n**Sup_clientip %s",Sup_clientip[nb_add_ip]);
- nb_add_ip++;
- printf ("\nfin du for" );
- sleep(20);
- }
- }
- sleep(20);
- return(1);
- }
|
|