char *c; //a pointer variable is being declared
*c='a';
вы использовали оператор разыменования для доступа к значению переменной, на которую указывает c, но переменная-указатель c не указывает ни на какую переменную, поэтому у вас возникают проблемы во время выполнения.
char *c; //declaration of the pointer variable
char var;
c=&var; //now the pointer variable c points to variable var.
*c='a'; //value of var is set to 'a' using pointer
printf("%c",var); //will print 'a' to the console
Надеюсь, это помогло.