Итак, вот ваша проблема.
Вы определяете массив типа char
длиной 50. Затем вы читаете из стандартного ввода строку и сохраняете ее по адресу 50-го элемента. Итак, что произойдет, если вы сохраните строку «вне пределов», и вы можете получить ошибку sh, а может и нет.
В любом случае происходит что-то очень плохое. Вы записываете данные в область памяти, которой быть не должно.
Итак, вы хотите записать эти данные по адресу 0-го индекса массива.
Вы делаете это с помощью &a[0]
или, для простоты: a
. Оба означают одно и то же.
В конце концов, вы хотите следующее:
#include<stdio.h>
int main()
{
char a[50];
printf("Enter character...");
scanf("%s",a);
printf("You entered is %s",a);
return 0;
}
Я понимаю, что вы новичок и изучаете основные c концепции, но имейте в виду, что этот код очень небезопасен. Потому что, если кто-то наберет длину символов более 50, вы снова окажетесь в той же лодке, что и раньше.