Значением переменной t
является местоположение одного или нескольких смежных char
с. Когда вы делаете t = s
, вы копируете местоположение символа s[0]
в t
(и заменяете старое значение t
, полученное из malloc()
). t[0]
и s[0]
теперь относятся к одному и тому же символу - изменение одного будет видно через другой.
Когда вы используете strcpy(t, s)
, вы копируете действительные символы из одного места в другое.
Первое похоже на размещение двух номеров домов в одном доме. Последнее похоже на создание точной копии всей мебели в одном доме и размещение ее во втором.