fonction pour remplir un tableau de char *
Bonjour a tous
voila j'ai un probleme qui persiste :
je veux ecrire une fonction qui prend 3 paramaitre
Code:
1 2 3 4 5 6 7
| void PartFile(double size , int parts, char **ranges )
// size = taille de fichier
// parts = nombre de partie
// ranges = tableau qui va contenir les partie
{
///
} |
la question est comment chager la valeur du tableau (char **ranges)
qui doit etre a la fin
Code:
ranges={"xxx-bbb","ccc-ddd",...}
en pascal c'est faisable mais en C j'ai des deficultes ..
autrement dir :
Code:
1 2 3 4 5 6 7
|
// je declare le tableau
char ** p ; // pointe sur rien
// j'appel la fonction
PartFile(6542454 , 8, p )
// a la fin je dois avoir un tableau plein ..
// p={"xxx-bbb","ccc-ddd",...} |
et maintenant le Code de la fonction :
Code:
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 32 33 34 35 36 37 38 39
|
///////////////////////////////////////
// je devise le sze sur parts
// et je remplis les ranges .
// ranges sont de sorte : {"fsdf-fsdfs","fs-fsd",...}
//
/////////////////////////////////////
void PartFile(double sze , int parts, char **ranges )
{
// char srange[parts][100] ;
long int qot , rem ;
ldiv_t t = ldiv(sze , parts) ;
qot = t.quot ;
rem = t.rem ;
int i = 0 ;
for ( i=0 ; i<parts ; i++)
{
int r = 0 ;
static int d = 0 ;
char cnb[50] , rg[100] ;
r = d - qot ; // t=0
if (i==0) {r += qot ;} else {r += (qot+1) ;}
ltoa(r,cnb,10);
strcpy(rg,cnb);
strcat(rg,"-");
r += qot ; // t= bachsz
ltoa(r,cnb,10);
strcat(rg,cnb) ;
d = r ;
sprintf(ranges[i],"%s",rg); /// Problem
printf("%s\n", ranges[i]) ;/// Probleme
}
} |
voila tout
j'espere que vous m'aidiez ou me donner une astuce
Merci