gpt4 book ai didi

c++ - 在结构中分配数组字段

转载 作者:行者123 更新时间:2023-12-04 15:10:17 24 4
gpt4 key购买 nike

最近我开始研究 C++ 代码,我试图与一个外部库进行通信,该库具有如下定义的结构

struct StudentsInformation {
int student_count[10];
double total_marks[10];
double section_marks_average;
double class_marks_average;
};

我试图在一个单独的类中为这个结构创建一个对象,如下所示

int count[10] = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}; 
double marks[10] = {10.0, 20.0, 30.0, 40.0, 50.0, 10.0, 20.0, 30.0, 40.0, 50.0};

StudentsInformation stuInfo = { count, marks, 68.8, 56.7 };

编译它会出现以下错误

Cannot initialize an array element of type 'int' with an lvalue oftype 'int [10]'

不确定我做错了什么。

最佳答案

这应该可以在 C 和/或 C++ 中正常编译:

#include <stdio.h>

struct StudentsInformation {
int student_count[10];
double total_marks[10];
double section_marks_average;
double class_marks_average;
};

int main(int argc, char *argv[]) {
struct StudentsInformation si = {
{1, 2, 3, 4, 5, 1, 2, 3, 4, 5},
{10.0, 20.0, 30.0, 40.0, 50.0, 10.0, 20.0, 30.0, 40.0, 50.0},
68.8, 56.7
};

return 0;
}

错误信息的关键部分是“cannot convert an lvalue”:

https://en.cppreference.com/w/cpp/language/value_category

lvalue:

the name of a variable, a function, a template parameter object (sinceC++20), or a data member, regardless of type, such as std::cin orstd::endl. Even if the variable's type is rvalue reference, theexpression consisting of its name is an lvalue expression;

关于c++ - 在结构中分配数组字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65298007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com