RACH_preamble 2019-08-28 17:47 采纳率: 83.3%
浏览 454
已采纳

报错: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};

这两行报错

  • 写回答

1条回答 默认 最新

  • qtchen_1988 2019-08-28 18:18
    关注
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波