Salut,

J'ai actuellement un probleme avec une fonction censée convertir un entier long en une chaine de caractères :

La fonction a trois arguments : l'entier a convertir, le pointeur vers une chaine de caractères ou l'on doit ecrire la chaine, et la base.
Seulement, il y a un probleme , et quand j'essaye d'afficher la chaine a l'ecran, je n'obtient pas la chaine souhaitée.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
 
void DecToChar(long, char*, int);
 
int main()
{
	long i;
	char* buf = new char[32];
	i = 16565;
	DecToChar(i, buf, 10);
	cout <<buf<<endl;
	system("pause");
}
 
void DecToChar(long Dec, char* out, int radix)
{
	char tableau[33];
	register int i;
	for(i = 31; Dec != 0 && i >= 1; i--)
	{
		tableau[i] = (Dec % radix) >= 10 ? 0x57 + (Dec % radix) : 0x30 + (Dec % radix);
		Dec /= radix;
	}
	tableau[32] = '\0';
	out = new char[32-i];
	register int j;
	for(j = 0; i < 33; out[j] = tableau[i], i++, j++);
}
et j'obtient (sur la console) :════════════════════════════════²²²²½½½½½½½½¯■¯■
Appuyez sur une touche pour continuer...

Aucun probleme de compilation.
Je pense qu'il y a un probleme au niveau du pointeur char, mais je ne suis pas sur.

PS : je suis un debutant, je ne suis peut etre pas au point sur certaines choses.

Merci.