Вы не можете, потому что вы пытаетесь изменить константные данные.
изменить на:
char My_St[] = "abcdef";
Тогда вы сможете изменить его.
Подумайте о том, что вы делали, вы объявили указатель , который указывал на "abcdef"
. Это указатель, , а не массив символов. "abcdef"
живет на ферме, я имею в виду, в области .text
вашей программы, и это неизменно.
Когда вы делаете это так, как я показал, вы говорите компилятору: я объявляю этот массив, в котором будет столько символов, сколько необходимо для размещения "abcdef"
, а также, как вы, копируете "abcdef"
к нему.