@dandropov95

Почему не работает программа вывода двух строк?

Подскажите пожалуйста, почему данная программа не работает. В MSVC вылетает ошибка. В GCC запускается, но не выводит результат.
#include <stdio.h>

int main(void)
{
	typedef char * string;

	string first_name;
	string last_name;

	scanf("%s %s", first_name, last_name);
	printf("%s %s", last_name, first_name);

	return 0;
}


// А так работает 
char first_name[40];
char last_name[40];
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
myjcom
@myjcom
по простому:
char first_name[40] - резервируется память для 40 байт.

typedef char * string; 
string first_name; - это просто указатель, причем неинициализированный.

scanf("%s %s", first_name, last_name); - это обращение 
к неинициализированному указателю (undefined behaviour)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы