Envoyé par
dj.motte
Bonjour,
Je voyais plutôt :
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 30 31 32 33 34 35
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct shmstruct{
char * message;
size_t taille_msg;
} sharedData_s;
const char * titre = "toto le message qui rigole" ;
int main(void)
{
sharedData_s data ;
int monInt = 10;
data.taille_msg = ( strlen( titre ) + 1) + 10 ; // 10 en reserve pour monInt;
data.message = malloc( data.taille_msg );
if (data.message != NULL)
{
sprintf("%s %d", data.message, titre, monInt )
printf("%s %d\n", data.message, monInt ) ;
free((void *) data.message), data.message = NULL;
}
else
{
fprintf(stderr, "L'allocation a échoué!\n");
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
} |
Je ne vois pas le problème.
Salut.
Si ça t'amuse. Pour sprintf(), un petit tour du côté de la documentation s'impose. En qui concerne:
data.message = malloc(data.taille_msg * sizeof *data.message);
est préférable du point de vue maintenance du code (ça ne mange pas d'pain de voir loin).
Thierry
Partager