Ca compile sans erreur:
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
| #include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE * fp = NULL;
const char* num = "123";
char* nom_image = NULL;
int longueur = 15;
nom_image = malloc(longueur);
if (nom_image == NULL) {
perror("Erreur sur malloc");
exit(EXIT_FAILURE);
}
memset(nom_image, '\0', sizeof(nom_image));
snprintf(nom_image, longueur, "Image_%s.ppm", num);
printf("nom_image = '%s'\n",nom_image);
printf("En cours d'ecriture de l'image...\n");
fp = fopen(nom_image, "w");
free(nom_image); nom_image = NULL;
exit(EXIT_SUCCESS);
} |
Tu avais un problème ici:
snprintf(nom_image, longueur, "Image_%s.ppm", num);
avant tu utilisais %d alors que c'est une chaîne de caractères.
Là ca compile sans erreur avec GCC et les options:
et pas de problème à l'exécution !
Partager