Pointeur à la fin "\0"

Signaler
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011
-
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011
-
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

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
printf("%c",*tmp);

---
VB.NET is good ... VB6 is better
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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 *&'
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

Salut,
j'ai faiser le casting mais un autre erreur
erreur: impossible de convertir le paramètre 4 de 'unsigned char *' en 'unsigned char *&'
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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