报错:C++必须是可修改的左值

###C++必须是可修改的左值:

#include <iostream>

using namespace std;
struct applicant {
    char name[30];
    int credit_rating[3];
};

void print_struct(applicant*);

int main()
{
    applicant* p_app1 = new applicant;
    p_app1->name = "niahl";
    p_app1->credit_rating = {2, 5, 6};
    print_struct(p_app1);
    return 0;
}


void print_struct(applicant* p_app)
{
    cout << "name: " << p_app->name << endl;
    int i;
    for (i = 0; i < 3; i++)
        cout << "credit_rating" << i+1 << ": "
        << p_app->credit_rating[i] << endl;
}

p_app1->name = "niahl";

p_app1->credit_rating = {2, 5, 6};

这两行报错

#include <iostream>
#include <string.h>

using namespace std;
struct applicant {
    char name[30];
    int credit_rating[3];
};

void print_struct(applicant*);

int main()
{
    applicant* p_app1 = new applicant;
   // p_app1->name = "niahl";
    strcpy(p_app1->name,"niahl");
    p_app1->credit_rating[0] = 2;
    p_app1->credit_rating[1] = 5;
    p_app1->credit_rating[2] = 6;
    print_struct(p_app1);
    return 0;
}


void print_struct(applicant* p_app)
{
    cout << "name: " << p_app->name << endl;
    int i;
    for (i = 0; i < 3; i++)
        cout << "credit_rating" << i+1 << ": "
        << p_app->credit_rating[i] << endl;
}

或者

#include <iostream>
#include <string.h>

using namespace std;
struct applicant {
    char name[30];
    int credit_rating[3];
};

void print_struct(applicant*);

int main()
{
    applicant* p_app1 = new applicant;
    //p_app1->name = "niahl";
    //p_app1->credit_rating = {2, 5, 6};
    strcpy(p_app1->name,"niahl");
    int temp[3] = {2,5,6};
    memcpy((char *)p_app1->credit_rating,(char *)temp,3*sizeof(int));
    print_struct(p_app1);
    return 0;
}


void print_struct(applicant* p_app)
{
    cout << "name: " << p_app->name << endl;
    int i;
    for (i = 0; i < 3; i++)
        cout << "credit_rating" << i+1 << ": "
        << p_app->credit_rating[i] << endl;
}