Почему не удаётся записать символ в строку?
char * str1 = new char[6]; // тут вы выделяете 6 байт памяти
                                         // и присваиваете адрес выделенной памяти переменной str1
str1 = "Lorem"; // тут вы теряет ранее полученный адрес (утечка памяти)
                        // и переменной str1 присваиваете новый адрес из (not write access) блока памяти.
str1[5] = '\0';   // тут у вас уже проблема, так как на эту область памяти стоит защита от записи.
Содержимое строки нужно копировать в выделенную память
Поехали . 
Char * str =бльбаблабла
Тут во-первых и так на конце будет нуль.
Если нет, значит в этой строке можно сразу нуль дописать.Врчд ли это будет нужно.
Область памяти только для чтении.
2. Гуглим сравнение строк и указателей
3.т ам выделана память на чтение и запись
А тут видимо выехали за границу. с мобилы плохо видно.
4. Нужно использовать только safe варианты и прочитать иныу о параметрах. Сейчас не подскажу