###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;
}