Program przestaje działać - dlaczego?

0

Witam,
mam ostatnio taki problem, że gdy kompiluję program wszystko jest w porządku. W momencie gdy go uruchamiam wszystko jest dobrze do momentu wyświetlenia zmiennej przypisanej poprzez funkcję

 scanf

. Wtedy wyskakuje mi komunikat "Program xxx przestał działać, trwa wyszukiwanie błędów". Wcześniej wszystko było w porządku. Czy może to być spowodowane antywirusem? Przed każdym uruchomieniem jakiegoś programu muszę potwierdzać, że chcę go uruchomić ponieważ może być niebezpieczny dla komputera. Gdy dam jakiś program bez funkcji scanf

 wszystko jest w porządku.
Na przykład ten program nie działa:

```c
 #include <stdio.h>

int main(void)

{
	char imie, nazwisko;
	
	printf("Jak masz na imie?\n");
	scanf("%s", &imie);
	printf("Jak masz na nazwisko?\n");
	scanf("%s", &nazwisko);
	printf("Mam na nazwisko %s, a na imie %s", nazwisko, imie);
	
	getchar();
	getchar();
	return 0;
}

A ten działa:

 #include <stdio.h>

int main(void)

{

	printf("Dzisiaj jest ładna pogoda.");
		
	getchar();
	return 0;
}

Miał ktoś może taki problem? Jak go rozwiązać?

0
char imie, nazwisko;

char = 1 bajt = 1 znak.
Chodziło ci o

char *imie, *nazwisko;

?

1

Poczytaj o c-stringach. Jak zrobisz po prostu tak jak Patryk27 napisał to też wywalisz program. Piszesz po pamięci, której sobie nie zarezerwowałeś i nie należy do Ciebie.

0

Trzeba było czytać warningi. Char to znak, jak chcesz tam dać ciąg znaków imię i nazwisko muszą być tablicami charów w przypadku "niedziałającego" kodu poprawny będzie taki

  #include <stdio.h>

int main(void)

{
        char imie[80], nazwisko[80];

        printf("Jak masz na imie?\n");
        scanf("%s", imie);
        printf("Jak masz na nazwisko?\n");
        scanf("%s", nazwisko);
        printf("Mam na nazwisko %s, a na imie %s", nazwisko, imie);

        getchar();
        getchar();
        return 0;
}

Zakładam naturalnie że nikt nie poda imienia ani nazwiska większego niż 80 znaków.

0

Dobra dzięki, stringi właśnie zacząłem czytać;D Jeszcze raz dzięki;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1