Pointeur à la fin "\0"

cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011 - 15 avril 2010 à 11:10
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011 - 15 avril 2010 à 16:27
j'ai une fonction qui demande un pointeur sur unsigned char mais il faut qu'il contient à la fin "\0" comment je peut faire
unsigned char *tmp; 
fonction(tmp); 

mais je ne peut pas l'afficher avec printf car n'y a pas \0 à la fin
Comment je peut le faire?

7 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
15 avril 2010 à 11:19
printf("%c",*tmp);

---
VB.NET is good ... VB6 is better
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
15 avril 2010 à 11:58
Salut,

j'utilise une fonction d'une bibliothéque réaliser en c elle demande comme paramétre un pointeur sur unsigned char j'ai mis ce portion de code:

unsigned char *tmp;
tmp=new unsigned char[10];//pour obtenir '\0' à la fin
res=tmp_list.GetTemplate(0,typ_tmp,lg_tmp,tmp);
//tmp est une valeur retourner par cette fonction 
printf(" temp :%s\n",*tmp);
// avec cette printf j'ai une erreue d'execution
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 avril 2010 à 12:04
tmp = new unsigned char[10];
Une alloc pour 10 octets, totalement inutile.

unsigned char tmp[10];
tmp[9] = 0; // Voila un 0 a la fin.

ciao...
BruNews, MVP VC++
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
15 avril 2010 à 12:33
voila ce que j'obtient comme erreur lorsque j'ai modifier comme cela:

unsigned char tmp[10];
 res=tmp_list.GetTemplate(0,typ_tmp,lg_tmp,tmp);
tmp[9] = 0;


erreur C2664:
impossible de convertir le paramètre 4 de 'unsigned char [10]' en 'unsigned char *&'

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
15 avril 2010 à 12:53
tu casts alors si ton compilo te sort une erreur

res=tmp_list.GetTemplate(0,typ_tmp,lg_tmp,(unsigned char*)&tmp);


@+
Arnotic,
Admin CS
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
15 avril 2010 à 13:29
Salut,
j'ai faiser le casting mais un autre erreur
erreur: impossible de convertir le paramètre 4 de 'unsigned char *' en 'unsigned char *&'
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
15 avril 2010 à 16:27
Salut,

Mon probléme ce que j'utilise des bibliothéque qui ne sont pas la mienne et qui impose des types de retour comme vous l'avez vu
voila j'utilise une fonction qui demande
un pointeur sur unsigned char

j'ai utilisé ce portion de code et ça marche car il demande qu'il se termine par '\0'
unsigned char ch2[]="salah";
res=c_fld.PutField(1,sizeof(ch2),ch2)

ça marché mais le probléme :
---- j'utilise une fonction qui demande une adresse sur pointeur sur unsigned char si je ne me trompe pas voila ce que demande en message d'erreur si je ne met pas le type voulu
impossible de convertir le paramètre 4 de 'unsigned char [50]' en 'unsigned char *&'
//le type voulu c'est unsigned char *& 


voila l'exemple liée a l'erreur citer dessus
unsigned char reg[50];
res=tmp_list.GetTemplate(0,typ_tmp,lg_tmp,reg);


Merci de me préciser c'est quoi le type demander
unsigned char *& 

Merci pour votre aide
Rejoignez-nous