tu ne peux pas recuperer le tableau depuis la fonctions : qd tu sors de msg_intercept () , le tableau n'existe plus.
il faut le passer en parametre ainsi que sa taille.
#include <string.h>
#include <stdlib.h>
void msg_intercept(char * msg, char * del, char ** tab, int nbr){
# il faut passer le tableau en reference
Posté par kesako . En réponse au message Extraction sous-chaînes. Évalué à 2.
il faut le passer en parametre ainsi que sa taille.
#include <string.h>
#include <stdlib.h>
void msg_intercept(char * msg, char * del, char ** tab, int nbr){
char * p;
int i;
printf ("msg_intercept nbr=%d\n", nbr);
printf ("msg_intercept tab=%d\n", sizeof(tab));
p = strtok(msg, del);
if (p != NULL) {
puts(p);
tab[0] = p;
for(i=1; ((p = strtok(NULL, del)) != NULL) && i < nbr; i++) {
puts(p);
tab[i] = p;
}
}
}
int main(){
char msg[] = "|15236|termtoacq|125,23|123456789123|\n";
char del[] = "|";
char * tab[4];
int i = 0;
int nbr = sizeof(tab)/sizeof (char *) ; // ou nbr =4 tout simplement
printf ("tab=%d\n", sizeof(tab));
msg_intercept(msg, del, &tab[0], nbr);
for (i =0 ; i<4 && tab[i]!= 0; i++){
printf ("tab[%d]=\"%s\"\n", i, tab[i]);
}
return 0;
}