to mr.The
Первая переменная есть указатель на область памяти в 1 байт, выделенная под переменную типа char. Делая так char *first = "Text" - ты успешно записываешь в место адреса "Te"(2 байта)
Вторая переменная - массив из 255 элементов.
Я думаю правильно так
char first[5]= "Text";
char second[255];
for(int i=0; i<5; i++)
{ second[i]=first[i];
cout << second[i];
}
Первая переменная есть указатель на область памяти в 1 байт, выделенная под переменную типа char. Делая так char *first = "Text" - ты успешно записываешь в место адреса "Te"(2 байта)
По моему бред. первое объявление есть указатель на массив символов, заранее неопределенной длины, инициализируя указатель он какбэ объявляет что этот массив будет размером 4байта+'\0' точнее слово "Text"
а если нам нужно работать со строкой не посимвольно? например вывеси ее сразу :
printf("%s",second);
а она будет до этого заполлнена, выведутся - TextXXXXXX X-символы которыми была до этого заполнена.
Самый нормальный вариант имхо, использовать, как уже говорили выше - strcpy из string.h