У меня есть this code, который работает, как ожидалось:Как сохранить const char * в char *?
#define MAX_PARAM_NAME_LEN 32
const char* GetName()
{
return "Test text";
}
int main()
{
char name[MAX_PARAM_NAME_LEN];
strcpy(name, GetName());
cout << "result: " << name << endl;
}
Если бы я хотел, чтобы сохранить результат на char *
(потому что некоторые функции в пределах рамочные я использую использовать только char *
в качестве входных данных) без использования strcpy
(для практичности и удобочитаемости кода, а также для обучения), как я мог это сделать? Имея в const
, это хорошо работает:
const char* name;
name = GetName();
, но я до сих пор const
.
Попытка использовать только char*
:
char* name;
name = GetName();
я invalid conversion from 'const char*' to 'char*'
. Какая лучшая привычка для такого преобразования?
Что вы хотите сделать? Если вы не хотите изменять строку, первая идиома служит вам и не использует дополнительную память; если вы хотите изменить строку, вам нужно скопировать ее содержимое в другое место (так что вам нужно strcpy или подобное). – SJuan76