Изменить значение переменной char через функцию
Я хочу что бы было что то вроде
void func(int i, char* name)
{
if (i = 3)
{
std::cout << name << std::endl; //valera
name = "anton";
std::cout << name; //anton
}
}
int main()
{
static char name[] = "valera";
func(3, name);
std::cout << name; // anton
}
Но при попытке выполнить этот код у меня ошибка
E0513 значение типа "const char *" нельзя присвоить сущности типа "char *"
Как мне правильно сделать код?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Перефразируя из "Ивана Васильевича" - "да сделать-то его, царь-надёжа, не мудрено":
void func(int i, char* name)
{
if (i = 3)
{
std::cout << name << std::endl; //valera
strcpy(name,"anton");
std::cout << name; //anton
}
}
int main()
{
static char name[] = "valera";
func(3, name);
std::cout << name; // anton
}
Только вот то ли это, что вы хотите?
Например, точно нужно присваивание, а не сравнение? :)
if (i = 3)
Далее - нужно позаботиться, чтоб передаваемый массив имел достаточно места для размещения новой строки...