Bonjour à tous.

Je cherche à écrire un petit code pour transformer un nombre en chaîne de caractères. Après quelques recherches Google, je décide d'utiliser la fonction SPRINTF. J'ai écrit quelques lignes de codes qui fonctionnent mais je voulais savoir si elles étaient correctes, dans le sens "respectent-elles les règles de bon usage?".

Cela concerne notamment l'utilisation de NULL comme argument de SPRINTF pour connaitre la taille de la chaine à écrire.

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
#include "stdlib.h"
#include "stdio.h"

int main(void)
{
    int a = 0x42;
    int i=-666;
    char *ptChaine=NULL;


    // on regarde la taille necessaire pour ecrire la chaine
    i = sprintf(NULL, "le nombre a est egal a : %x\ n",a);
    // on alloue la chaine sinon elle reste à NULL avec le sprintf
    ptChaine = malloc(i);
    // on peut enfin l'écrire
    sprintf(ptChaine,"le nombre a est egal a : 0x%x\n",a);
    // et l'afficher
    puts(ptChaine);


    system("pause");
    return 0;
}

Merci d'avance