Atribuição de cadeia em C

Eu sou novo em C. A atribuição de string no código a seguir funciona:

#include<stdio.h>
int main(void){
  char str[] = "string";
  printf("%s\n",str);
}

Mas não funciona no seguinte, até eu dou o número do índice para oname[]:

#include <stdio.h>
int main(void){
  struct student {
    char name[10];
    int  salary;
  };
  struct student a;
  a.name[10] = "Markson";
  a.salary = 100;
  printf("the name is %s\n",a.name);
  return 0;
}

Por que isso acontece?

questionAnswers(4)

yourAnswerToTheQuestion