You're trying to set a pointer's value directly, which isn't allowed (except for the special case of 0 or NULL)
ptr contains the address of a variable which holds a char.

so


char x = 'A'; /*...