gpt4 book ai didi

c - 这里的结构定义和编译器错误是什么问题?

转载 作者:行者123 更新时间:2023-12-02 10:56:22 25 4
gpt4 key购买 nike

当我输入以下代码时:

struct student {
int* grades;
int num_grades;
};


int main()
{
struct student s1 = { { 100, **50**, 74}, 3 }, s2 = { {100, **90**, 80, 90, 90}, 5 }, s3 = { {85, **90**}, 2 };
struct student arr[3] = { s1, s2, s3 };
}
我得到两个错误错误:
C2078 too many initializers
E0146 too many initializer values
我用两个粗体星号标记了这些数字,以告诉您Visual Studio在红色下划线处的位置。
有谁知道为什么编译器会告诉我该错误?

最佳答案

您不能通过括号括起来的初始化程序列表来初始化指针(grades变量)。您需要使用compound literal
就像是

 struct student s1 = { (int []){ 100,  50 , 74}, 3 };
应该做的工作。

关于c - 这里的结构定义和编译器错误是什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63011868/

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