Erreur: Pile autour de la variable "string" a été corrompu

J'ai un petit problème avec le code ci-dessous. C'est un programme simple qui se lit dans les 2 tableaux de char et int. Il stocke ensuite tout le contenu dans une autre chaîne de caractères et l'imprime sur.

#include <stdio.h>
#include <string.h>

int main ()

{
    char string [50];
    char first [11]; 
    char last [16];
    int age = 0;


    printf("Please type in your first name: ");
        scanf("%s", first); 

    printf("Please type in your last name: ");
        scanf("%s", last); 

    printf("Please type in your age: ");
        scanf("%d", &age); 

    sprintf(string, "Your name is %s %s and you are %d years old.", first, last, age);
        puts(string);

    getchar();
    getchar();

    return 0;
}

Maintenant, le programme est en cours d'exécution fine, mais quand je le ferme, j'obtiens l'erreur suivante:
Moment de l'exécution de l'Échec du contrôle N ° 2 - Pile autour de la variable "string" a été corrompu.
C'est un peu confus et je ne vois pas où est le problème. Je serais reconnaissant pour
tous les conseils.

  • Non, mais si vous avez C99 (ou d'une garantie de certaines parties de), vous devez être en utilisant snprintf à la place pour éviter ce genre de problème arrive.
InformationsquelleAutor Ordo | 2011-01-10