Ho un piccolo problema con il codice qui sotto. È un programma semplice che legge in 2 matrici di caratteri e un int. Quindi memorizza tutto il contenuto in un'altra stringa e lo stampa.Errore: lo stack attorno alla variabile "stringa" era danneggiato
#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;
}
Ora il programma sta funzionando benissimo, ma quando chiudo, ottengo il seguente errore: Run-Time Check Failure # 2 - Stack intorno al 'stringa' variabile è stato danneggiato. Questo è un po 'confuso e non riesco a capire dove sia il problema. Sarei grato per qualsiasi consiglio.
Non correlato, ma se si ha C99 (o una garanzia di alcune parti di esso) si dovrebbe usare 'snprintf' invece di evitare che questo tipo di problema accada. –