Mam mały problem z poniższym kodem. Jest to prosty program, który czyta się w 2 tablicach char i int. Następnie przechowuje całą zawartość w innym ciągu i drukuje ją.Błąd: Stos wokół zmiennej "ciąg" został uszkodzony
#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;
}
Teraz program działa dobrze, ale kiedy go zamknąć, pojawia się następujący błąd: Run-Time Check Failure # 2 - Stack wokół zmiennej 'string' został uszkodzony. To trochę zagmatwane i nie wiem, gdzie jest problem. Byłbym wdzięczny za radę .
Niepowiązane, ale jeśli masz C99 (lub gwarancję niektórych jego części), powinieneś używać 'snprintf' zamiast tego, aby zapobiec temu problemowi. –