couper une chaîne [résolu avec strtok] - C - Programmation
Marsh Posté le 22-12-2005 à 13:58:14
denzz a écrit :
|
Tu m'étonnes : où sont les allocations mémoire de *ptcFam et *ptcRef ?
Ce ne sont que des pointeurs, ces variables ne contiennent que des adresses. Ici, des adresses vers n'importe où, en tout cas pas sur un bloc mémoire valide.
=> cf. malloc()
denzz a écrit : J'ai exploré la voie du strtok qui ne m'a pas aidé. |
Essaie à nouveau, et poste le code de ce qui ne fonctionne pas.
Marsh Posté le 22-12-2005 à 14:44:29
mmh.
effectivement les malloc !
reprenons :
Code :
|
ca change rien
quand au strtok, j'avais testé comme ca :
Code :
|
Merci pour ton aide, une aide extérieure permet toujours de faire avancer le pb
Marsh Posté le 22-12-2005 à 15:07:24
denzz a écrit :
|
Le cast est inutile. Et "sizeof" permet de déterminer le nombre de bytes pour un type particulier :
Code :
|
(en espérant que "la_taille_qui_va_bien" corresponde à la taille de ce que tu dois copier + le caractère null de fin de chaîne)
denzz a écrit :
|
Coup de bol.
Le propre des opérations foireuses en mémoire, c'est que le comportement est aléatoire.
Ca passe ou ça casse. Là, c'est passé. Demain, ça aurait peut-être cassé.
denzz a écrit :
|
N'écoute plus "on" :
Citation : strcpy(), strncpy(), strlcpy() |
denzz a écrit :
|
int ?
Pourquoi, int ?
strchr retourne un char*, soit une adresse, non un entier.
"iPosDeuxPoints" doit être de type char* aussi.
La suite plus tard...
Marsh Posté le 22-12-2005 à 15:33:51
pour mon sizeof, il s'agit bien de récupérer la taille d'un champ d'une structure, donc à ce niveau pas de pb.
merci pour ces éclaircissements, mais je pense que je vais continuer à écouter 'on' puisqu' "on" m'a dit que je me trompais, ce que tu me confirmes avec cette belle citation
en ce qui concerne le cast en int, c'est en effet hasardeux, je pensais (et je n'écouterais plus mon cerveau) par extension adresse = int, et je me sentais assez chaud pr manipuler les adresses
Marsh Posté le 22-12-2005 à 13:53:48
Salut à tous,
J'ai regardé sur le forum quelles solutions apporter à mon problème (pourtant simple) mais rien ne m'a aidé jusqu'à présent.
le problème est simple :
j'ai une chaîne au format FAM:REF que je veux séparer en deux à partir du ':'
voilà mon code avec quelques commentaires pr expliquer ce que je fais.
J'avoue ne pas comprendre, sur le papier ma solution me paraît ok ...
J'ai exploré la voie du strtok qui ne m'a pas aidé.
Toute aide est la bienvenue
j'avoue retourner le pb dans tous les sens, je ne comprends pas !
Message édité par denzz le 22-12-2005 à 15:02:46