Я пытаюсь назначить массив символов в структуре, используя строковый литерал, как показано ниже, но он не работает:
s1.name[20] = "Mark";//prints some garbage string with special symbols
Но когда я попытался назначить его с помощью strcpy, он работал нормально. Может ли кто-нибудь объяснить мне, почему это не удается в первом случае?
strcpy(s1.name, "Mark");//This Works
Ниже приведен полный код:
struct student {
char name[20];
int id;
float marks;
};
int main(int argc, const char * argv[])
{
struct student s1;
s1.name[20] = "Mark";
//strcpy(s1.name, "Sonoo Jaiswal");
s1.id = 22;
s1.marks = 76;
printf("%s: , %d: , %f: \n",s1.name, s1.id,s1.marks);
}