Изменить значение переменной 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)

Далее - нужно позаботиться, чтоб передаваемый массив имел достаточно места для размещения новой строки...

→ Ссылка