Bonjour à tous,

J'ai un petit souci de chaines qui me fait lamentablement planter mon prog.

C'est un peu en rapport avec un sujet que j'ai posté il y a peu de temps, mais le problème n'est pas tout à fait le même.

Voici le bout de code qui me pose problème :

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
 
    if (strcmp(callBackMessage,"\0"))
    {
        tempBuff = (char *)malloc(sizeof(callBackMessage) + 3);
        if (tempBuff == NULL) MessageBox (0, "Pb malloc !!", "Erreur", MB_ICONINFORMATION);
        else{
        MessageBox (0, callBackMessage, "Test", MB_ICONINFORMATION);
        sprintf(tempBuff, "1K%s", callBackMessage);
        strcpy(lpszReceiveBuff, tempBuff);
        buffSize = strlen(tempBuff);
        free(tempBuff);
        return buffSize;
        }
    }
    return 0;
La 2e MessageBox, c'est pour vérifier le contenu de callBackMessage. Et il est bon.

Le problème se situe au moment du sprintf. L'appli de test, avec laquelle je fais appel à la fonction de la DLL plante lamentablement, sans même un message d'erreur.

Pourtant, l'allocation mémoire est OK, callBackMessage est OK. Je vois vraiment pas pourquoi ça veux pas marcher.

Au niveau déclarations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
char * callBackMessage;
[...]
char * tempBuff;
int buffSize;
callBackMessage est une chaine initialisée par une fonction callBack d'une API.

Si quelqu'un voit d'où vient le problème Je galère vraiment là, je suis loin d'être un expert en C.