Перед вводом строки необходимо определить место для хранения строки, т.е. закрепить в оперативной памяти определенное количество байт, последовательно следующих друг за другом (непрерывное пространство), в котором будут размещены символы вводимой строки, включая и автоматически добавляемый при вводе символа окончания строки ‘\0’.
Проще всего явно описать размер памяти, необходимый для функции ввода, который равен максимально возможной длине вводимой строки плюс символ ее окончания ‘\0’.
Например,
char name[30];
Согласно этому оператору, будет выделено 30 байт для хранения строки длиной не более 29 символов (плюс символ \0).