char MaChaine[34]; ça serait pas mieux ? Je ne pense pas que le compilateur alloue de lui même de la mémoire. On passe le pointeur sur la chaîne, mais si y a rien "derrière", il ne sait pas où écrire. :jap:
bud8
Merci mais j'ai essaye et ca marche pas .
Je me retrouve avec un pb d'allocation memoire (surement un pb de pointeur) mais j'arrive pas a le resoudre.
voici un exemple de ce que je fais :
ceci ce trouve dans une boucle for avec un tableau de __int64
gilou
Ce que je t'ai file comme indications venait directos de la doc microsoft.
Il y a aussi les fonctions suivantes:
char *_i64toa( __int64 value, char *string, int radix );
char * _ui64toa( unsigned _int64 value, char *string, int radix );
Convert an integer to a string.
The _itoa, _i64toa, and _ui64toa function convert the digits of the given value argument to a null-terminated character string and stores the result (up to 33 bytes) in string. If radix equals 10 and value is negative, the first character of the stored string is the minus sign ( ? ).
A+,
bud8
Ca marche toujours pas :( Ben la solution de Gilou ne marche pas car elle fait planter mon debugger.
Et la solution de rufo marchepour un int mais pas pour un int64, le type __int64 n'est pas accepte et en le convertissant, je perds des infos .
Merci
rufo
bud8 a écrit a écrit :
Bonjours ,
Je cherche comment enregitrer un __int64 dans une chaine de carractere :D Merci
sinon, t'as aussi itoa(var_num, var_char, base) ;
et faut faire #include stdlib.h
ps: base, en général c'est base 10, mais tu peux vouloir ta chaine de caractères en base héxa (16) ou binaire (2) ou octale (8)...
gilou
sprintf( machaine, "%I64d", mon-int-64 );
Pour un entier sur 64 bits, tu utilises le prefixe I64 avant le s'indicateur de type usuel (d, i, o, u, x, ou X), de la meme maniere que tu utiliserais l pour un long.
A+,
bud8
Bonjours ,
Je cherche comment enregitrer un __int64 dans une chaine de carractere :D Merci