Я знаю, что строковые литералы хранятся в постоянной памяти, поэтому вы не можете их обновить. Но что случилось с strlen() function.it работает, если я инициализирую char * s внутри программы.ошибка сегментации (сбрасывается ядром) при взятии строки от пользователя и поиске ее длины с помощью strlen()
т.е.char *s="hey";
length=strlen(s);
printf("%d\n",length);// this works
и не принимая строку из пользователя
char *s;
int length;
scanf("%s",s);
length=strlen(s);
printf("%d\n",length); //this doesn't. gives segmentation fault
'зсапЕ («% S», с);' вызывает неопределенное поведение, а это значит, что все может случиться. –