Debutant - unsigned char* [Résolu]

cs_DoudouBidou 102 Messages postés jeudi 29 mai 2003Date d'inscription 23 juin 2008 Dernière intervention - 25 mai 2005 à 15:59 - Dernière réponse : cs_DoudouBidou 102 Messages postés jeudi 29 mai 2003Date d'inscription 23 juin 2008 Dernière intervention
- 26 mai 2005 à 09:17
Bonjour,

j'ai 2 question de débutant concernant unsigned char*



1- es-ce normal que le 1er caractere soit la longueur de la chaine?

2 - comment on supprime ce caractere? :)



c'est certainement tout simple, mais je développe en python et le C me semble tellement compliqué à comparé...



merci à vous
Afficher la suite 

6 réponses

Répondre au sujet
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 26 mai 2005 à 00:03
+3
Utile
tu as ta chaine dans p par exemple. Alors *p contient la longueur de ta
chaine (entre 0 et 255), et p+1 contient la chaine réelle.



Il serait plus propre de faire:

typedef struct _chaine

{

int size;

char* p;

} chaine;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de vecchio56
bayeto 224 Messages postés mardi 12 août 2003Date d'inscription 18 octobre 2010 Dernière intervention - 25 mai 2005 à 16:14
0
Utile
Normalement les chaines C se terminent par un caractère nul et commence ... par leur début...


mayonaise tournera, bientôt, très bientôt...
Commenter la réponse de bayeto
cs_DoudouBidou 102 Messages postés jeudi 29 mai 2003Date d'inscription 23 juin 2008 Dernière intervention - 25 mai 2005 à 19:03
0
Utile
ok donc le fait que j'ai la taille de la chaine comme 1er caractere
(valeur limité à 256 même si ma chaine est plus longue d'ailleurs) est
peut-être lié à mon application. je développe ma 1ere dll et je la
variable que je reçois est une unsigned char*.



ceci dit comment on fait en C ou C++ pour récupéré qu'une partie de cette variable ou viré le 1er caractere ??
Commenter la réponse de cs_DoudouBidou
bayeto 224 Messages postés mardi 12 août 2003Date d'inscription 18 octobre 2010 Dernière intervention - 25 mai 2005 à 19:14
0
Utile
Si seulement le 1er car donne la taille, alors en incrementant le pointeur de 1 on a le contenu. Reste a savoir si ya bien un car nul à la fin.


mayonaise tournera, bientôt, très bientôt...
Commenter la réponse de bayeto
cs_DoudouBidou 102 Messages postés jeudi 29 mai 2003Date d'inscription 23 juin 2008 Dernière intervention - 25 mai 2005 à 20:37
0
Utile
ah?

et concretement je fais comment?
Commenter la réponse de cs_DoudouBidou
cs_DoudouBidou 102 Messages postés jeudi 29 mai 2003Date d'inscription 23 juin 2008 Dernière intervention - 26 mai 2005 à 09:17
0
Utile
j'ai fait comme ça

void Py4D_RunString(unsigned char *command)

{

const char *chaine = (const char*) command+1;

Py_Initialize();

PyRun_SimpleString(chaine);

Py_Finalize();

}

et ça fonctionne bien



merci !
Commenter la réponse de cs_DoudouBidou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.