Bonjour à tous
Mon code est fonctionnel. Mais je cherche à expliquer son comportement
Voici le code:
-------------------------------
------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 char*p="test ok1 ok2"; char*ch1,ch,lex; char*tab[3]; ch1=malloc((strlen(p)+1)*sizeof(char))); strcpy(ch1,s); while (*ch1 && (lex=strpbrk(ch1," "))){ ch=(char*)malloc(((lex-tmp)+1)*sizeof(char));/* mon problème est là*/ strncpy(ch,ch1,(lex-ch1))[tok-ch1+1]='\0'; tab[i++]=ch; ch1=lex+1; tab[i]='\0'; }
Le but est de découper slon des espaces et pointer tab[i] sur "le token"
Quand j'affiche tab[i] j'ai le résulatat attendu ( tab[0]=test et tab[1]=ok1).
Ma question:
Normalement quand je passe à la deuxième itération , je m'attends à ce que
le contenu de "ch" qui contient déja le token "test" soit écrasé. Donc l'affichage doit être seulement : tab[0]=ok1. Mais l'affichage est:
tab[0]=test
tab[1]=ok1
Ch n'est pas ecrasé? c'est bizarre?
Merci d'avance
Partager