gpt4 book ai didi

c - 在 typedef 结构中填充 int 数组时出错

转载 作者:行者123 更新时间:2023-11-30 14:52:01 24 4
gpt4 key购买 nike

我尝试初始化霍夫曼结构中的代码数组,但当我编译时它显示:

“{”标记之前的预期表达式错误。
我该如何修复它?

typedef struct {  
char letter;
float p;
int code[10];
}Huffman ;
Huffman line[4];

line[1].code[10]= {1,0,0,0};
line[2].code[10]= {0,0,1,0,1};
line[3].code[10]= {1,0,0,0,0};

最佳答案

错误:该错误是由于初始化方式造成的。

语句1:line[1].code[1] = 10;//作品
语句2: line[2].code[10]= {0,0,1,0,1};//错误

Statement2 的说法与编译器类似:转到名为 line[2] 的结构数组并选择元素数组 code 转到其第 10 个元素,这是错误的内存被保留用于 8 个整数值,但由于 C 中没有边界检查,所以它非常好并在那里粘贴一个 {0,0,1,0,1} 元素,这是不可能的,因为你将这些值粘贴到该元素一个元素。

更好的方法

   //Declaring variable SIZE thus prevent BOUND CHECKING.
int size;
size = sizeof(line[1].code)/sizeof(line[0].code[0])); //COUNTING NO OF ELEMENTS
for (loop = 0; loop<size; loop++)
line[1].code[loop] = loop; //INITIALING BY Values 0,1,2,3,4....

关于c - 在 typedef 结构中填充 int 数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47820247/

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