Je cherche un moyen de connaitre la position d'une occurence dans une chaine
J'ai essayé :
temp = strstr(bufferspace, "truc");
taille = temp-bufferspace;
Ne fonctionne pas car temp peut prendre la valeur NULL et donc le
compilateur refuse.
Etant dans l'espace noyau, je n'ai accès qu'a des fonctions sortant un
pointeur, et non la position.
Je cherche un moyen de connaitre la position d'une occurence dans une chaine
J'ai essayé : temp = strstr(bufferspace, "truc");
C'est la bonne solution.
taille = temp-bufferspace; Ne fonctionne pas car temp peut prendre la valeur NULL et donc le compilateur refuse.
Certes, la valeur de 'temp' peut être NULL si la chaine n'est pas trouvée, mais en aucun cas le compilateur de doit refuser quoique ce soit. Quelle est l'erreur de compilation signalée?
Etant dans l'espace noyau, je n'ai accès qu'a des fonctions sortant un pointeur, et non la position.
Une fois qu'on a l'adresse, la position s'obtient par différence de pointeurs (qui est de type ptrdiff_t)
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Francois Cartegnie <NOSPAM@TAMAMAN.OWC> wrote:
Je cherche un moyen de connaitre la position d'une occurence dans une
chaine
J'ai essayé :
temp = strstr(bufferspace, "truc");
C'est la bonne solution.
taille = temp-bufferspace;
Ne fonctionne pas car temp peut prendre la valeur NULL et donc le
compilateur refuse.
Certes, la valeur de 'temp' peut être NULL si la chaine n'est pas trouvée,
mais en aucun cas le compilateur de doit refuser quoique ce soit. Quelle est
l'erreur de compilation signalée?
Je cherche un moyen de connaitre la position d'une occurence dans une chaine
J'ai essayé : temp = strstr(bufferspace, "truc");
C'est la bonne solution.
taille = temp-bufferspace; Ne fonctionne pas car temp peut prendre la valeur NULL et donc le compilateur refuse.
Certes, la valeur de 'temp' peut être NULL si la chaine n'est pas trouvée, mais en aucun cas le compilateur de doit refuser quoique ce soit. Quelle est l'erreur de compilation signalée?
Etant dans l'espace noyau, je n'ai accès qu'a des fonctions sortant un pointeur, et non la position.
Une fois qu'on a l'adresse, la position s'obtient par différence de pointeurs (qui est de type ptrdiff_t)
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Francois Cartegnie
Certes, la valeur de 'temp' peut être NULL si la chaine n'est pas trouvée, mais en aucun cas le compilateur de doit refuser quoique ce soit. Quelle est l'erreur de compilation signalée?
Une fois qu'on a l'adresse, la position s'obtient par différence de pointeurs
(qui est de type ptrdiff_t)
J'ai toujours procédé comme ca sur des tableaux.
Certes, la valeur de 'temp' peut être NULL si la chaine n'est pas trouvée,
mais en aucun cas le compilateur de doit refuser quoique ce soit. Quelle est
l'erreur de compilation signalée?
Certes, la valeur de 'temp' peut être NULL si la chaine n'est pas trouvée, mais en aucun cas le compilateur de doit refuser quoique ce soit. Quelle est l'erreur de compilation signalée?
Une fois qu'on a l'adresse, la position s'obtient par différence de pointeurs
(qui est de type ptrdiff_t)
J'ai toujours procédé comme ca sur des tableaux.
Francois Cartegnie
invalid operands to binary -
Peux tu poster le code /exact/ et complet (réduit au minimum) qui donne le défaut que tu signales?
argh.. j'ai trouvé. j'ai un unsigned char * et un char * . Ca me donne pas la raison de l'erreur, etant donné qu'ils sont codés sur le même nb de bits et que j'avais aussi essayé de soustraire en les forçant en unsigned char avant la soustraction.
invalid operands to binary -
Peux tu poster le code /exact/ et complet (réduit au minimum) qui donne le
défaut que tu signales?
argh.. j'ai trouvé. j'ai un unsigned char * et un char * .
Ca me donne pas la raison de l'erreur, etant donné qu'ils sont codés sur
le même nb de bits et que j'avais aussi essayé de soustraire en les
forçant en unsigned char avant la soustraction.
Peux tu poster le code /exact/ et complet (réduit au minimum) qui donne le défaut que tu signales?
argh.. j'ai trouvé. j'ai un unsigned char * et un char * . Ca me donne pas la raison de l'erreur, etant donné qu'ils sont codés sur le même nb de bits et que j'avais aussi essayé de soustraire en les forçant en unsigned char avant la soustraction.
Ivan Vecerina
"Emmanuel Delahaye" wrote in message news: | > argh.. j'ai trouvé. j'ai un unsigned char * et un char * . | > Ca me donne pas la raison de l'erreur, etant donné qu'ils sont codés sur | > le même nb de bits et que j'avais aussi essayé de soustraire en les | | Mais le type est différent. Cependant, je pense qu'en C, ça ne méritait qu'un | warning. | | > forçant en unsigned char avant la soustraction. | | est-tu sûr que tu utilises un compilateur C et non C++? | | Mets ça dans ton code (n'importe où) | | #ifdef __cplusplus | #error Please use a C-compiler | #endif
Mauvais conseil. Selon les standard ANSI/ISO 89/99, un compilateur C est presque aussi stricte pour ce qui est du type de pointeurs qu'un compilateur C++ (sauf pour les pointeurs sur void*).
De toute maniere, pourquoi ne pas preferer ecrire du code portable C/C++ lorsque ca ne coute rien ?
Ivan -- http://www.post1.com/~ivec
"Emmanuel Delahaye" <emdelYOURBRA@noos.fr> wrote in message
news:Xns93CE834883A37hsnoservernet@130.133.1.4...
| > argh.. j'ai trouvé. j'ai un unsigned char * et un char * .
| > Ca me donne pas la raison de l'erreur, etant donné qu'ils sont codés sur
| > le même nb de bits et que j'avais aussi essayé de soustraire en les
|
| Mais le type est différent. Cependant, je pense qu'en C, ça ne méritait
qu'un
| warning.
|
| > forçant en unsigned char avant la soustraction.
|
| est-tu sûr que tu utilises un compilateur C et non C++?
|
| Mets ça dans ton code (n'importe où)
|
| #ifdef __cplusplus
| #error Please use a C-compiler
| #endif
Mauvais conseil. Selon les standard ANSI/ISO 89/99, un
compilateur C est presque aussi stricte pour ce qui est
du type de pointeurs qu'un compilateur C++
(sauf pour les pointeurs sur void*).
De toute maniere, pourquoi ne pas preferer ecrire du code
portable C/C++ lorsque ca ne coute rien ?
"Emmanuel Delahaye" wrote in message news: | > argh.. j'ai trouvé. j'ai un unsigned char * et un char * . | > Ca me donne pas la raison de l'erreur, etant donné qu'ils sont codés sur | > le même nb de bits et que j'avais aussi essayé de soustraire en les | | Mais le type est différent. Cependant, je pense qu'en C, ça ne méritait qu'un | warning. | | > forçant en unsigned char avant la soustraction. | | est-tu sûr que tu utilises un compilateur C et non C++? | | Mets ça dans ton code (n'importe où) | | #ifdef __cplusplus | #error Please use a C-compiler | #endif
Mauvais conseil. Selon les standard ANSI/ISO 89/99, un compilateur C est presque aussi stricte pour ce qui est du type de pointeurs qu'un compilateur C++ (sauf pour les pointeurs sur void*).
De toute maniere, pourquoi ne pas preferer ecrire du code portable C/C++ lorsque ca ne coute rien ?
Ivan -- http://www.post1.com/~ivec
Erwan David
"Ivan Vecerina" écrivait :
De toute maniere, pourquoi ne pas preferer ecrire du code portable C/C++ lorsque ca ne coute rien ?
Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
-- Monde de merde
"Ivan Vecerina" <ivec@myrealbox.com> écrivait :
De toute maniere, pourquoi ne pas preferer ecrire du code
portable C/C++ lorsque ca ne coute rien ?
Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
De toute maniere, pourquoi ne pas preferer ecrire du code portable C/C++ lorsque ca ne coute rien ?
Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
-- Monde de merde
Ivan Vecerina
"Erwan David" wrote in message news: | "Ivan Vecerina" écrivait : | | > De toute maniere, pourquoi ne pas preferer ecrire du code | > portable C/C++ lorsque ca ne coute rien ? | | Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
Il y a une famille de languages derives du C, et le C++ est certainement le plus proche -- au point d'incorporer le standard C89 avec une liste d'incompatibilités bien établie.
Tu peux tout aussi bien dire que le C n'existe pas. Il y a le K&R C, le ISO C89 (et variate 90), le ISO C99, qui tous ont de nombreuses incompatibilités. Et je passe sur les variantes et implémentations spécifiques....
Au sein meme de ces variantes officielles du C, certains usages sont plus compatibles que d'autres. Ainsi, pour etre portable, il vaut mieux respecter le type des pointeurs.
-- Monde de merde
Certes. Trop d'intolerance, ca tue.
Amicalement, Ivan
-- http://www.post1.com/~ivec
"Erwan David" <erwan@rail.eu.org> wrote in message
news:85vftcl1mb.fsf@bretagne.rail.eu.org...
| "Ivan Vecerina" <ivec@myrealbox.com> écrivait :
|
| > De toute maniere, pourquoi ne pas preferer ecrire du code
| > portable C/C++ lorsque ca ne coute rien ?
|
| Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
Il y a une famille de languages derives du C, et le C++ est
certainement le plus proche -- au point d'incorporer le
standard C89 avec une liste d'incompatibilités bien établie.
Tu peux tout aussi bien dire que le C n'existe pas.
Il y a le K&R C, le ISO C89 (et variate 90), le ISO C99,
qui tous ont de nombreuses incompatibilités. Et je passe
sur les variantes et implémentations spécifiques....
Au sein meme de ces variantes officielles du C, certains
usages sont plus compatibles que d'autres. Ainsi, pour
etre portable, il vaut mieux respecter le type des pointeurs.
"Erwan David" wrote in message news: | "Ivan Vecerina" écrivait : | | > De toute maniere, pourquoi ne pas preferer ecrire du code | > portable C/C++ lorsque ca ne coute rien ? | | Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
Il y a une famille de languages derives du C, et le C++ est certainement le plus proche -- au point d'incorporer le standard C89 avec une liste d'incompatibilités bien établie.
Tu peux tout aussi bien dire que le C n'existe pas. Il y a le K&R C, le ISO C89 (et variate 90), le ISO C99, qui tous ont de nombreuses incompatibilités. Et je passe sur les variantes et implémentations spécifiques....
Au sein meme de ces variantes officielles du C, certains usages sont plus compatibles que d'autres. Ainsi, pour etre portable, il vaut mieux respecter le type des pointeurs.
| "Ivan Vecerina" écrivait : | | > De toute maniere, pourquoi ne pas preferer ecrire du code | > portable C/C++ lorsque ca ne coute rien ? | | Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
| "Ivan Vecerina" <ivec@myrealbox.com> écrivait :
|
| > De toute maniere, pourquoi ne pas preferer ecrire du code
| > portable C/C++ lorsque ca ne coute rien ?
|
| Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
| "Ivan Vecerina" écrivait : | | > De toute maniere, pourquoi ne pas preferer ecrire du code | > portable C/C++ lorsque ca ne coute rien ? | | Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
| Tu peux tout aussi bien dire que le C n'existe pas.
il peut le dire :-)
-- Gaby
Erwan David
Gabriel Dos Reis écrivait :
Erwan David writes:
| "Ivan Vecerina" écrivait : | | > De toute maniere, pourquoi ne pas preferer ecrire du code | > portable C/C++ lorsque ca ne coute rien ? | | Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
C'est possible. Mais pour en revenir à la discussion, ou voulais-tu en venir avec l'histoire de unsigned char* vs. char* ?
C'était pas moi ça...
-- Monde de merde
Gabriel Dos Reis <gdr@integrable-solutions.net> écrivait :
Erwan David <erwan@rail.eu.org> writes:
| "Ivan Vecerina" <ivec@myrealbox.com> écrivait :
|
| > De toute maniere, pourquoi ne pas preferer ecrire du code
| > portable C/C++ lorsque ca ne coute rien ?
|
| Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
C'est possible. Mais pour en revenir à la discussion, ou voulais-tu en
venir avec l'histoire de unsigned char* vs. char* ?
| "Ivan Vecerina" écrivait : | | > De toute maniere, pourquoi ne pas preferer ecrire du code | > portable C/C++ lorsque ca ne coute rien ? | | Parceque ça coute ! et que C/C++ ça n'existe pas. Il ya C *et* C++
C'est possible. Mais pour en revenir à la discussion, ou voulais-tu en venir avec l'histoire de unsigned char* vs. char* ?
C'était pas moi ça...
-- Monde de merde
Emmanuel Delahaye
In 'fr.comp.lang.c', "Ivan Vecerina" wrote:
De toute maniere, pourquoi ne pas preferer ecrire du code portable C/C++ lorsque ca ne coute rien ?
Les langages C et C++ sont différents. Lorsque tu sauras de quoi tu parles, tu pourras revenir ici donner tes bons conseils.
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', "Ivan Vecerina" <ivec@myrealbox.com> wrote:
De toute maniere, pourquoi ne pas preferer ecrire du code
portable C/C++ lorsque ca ne coute rien ?
Les langages C et C++ sont différents. Lorsque tu sauras de quoi tu parles,
tu pourras revenir ici donner tes bons conseils.
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/