StringValueCStr
возвращает тот же указатель, что и StringValuePtr
- это внутренний строковый буфер объекта.
Этот буфер может измениться или стать недействительным в результате любой последующей мутации экземпляра String (или, конечно, сборки мусора), так что да, вы должны скопировать его, если вам нужно его сохранить.