Этот вопрос предназначен для использования в качестве справочной информации по всем часто задаваемым вопросам природы:
Почему я получаю таинственный крах или "ошибку сегментации", когда я копирую/сканирую данные на адрес, на который указывает неинициализированный указатель?
Например:
char* ptr;
strcpy(ptr, "hello world"); // crash here!
или
char* ptr;
scanf("%s", ptr); // crash here!