我尝试初始化霍夫曼结构中的代码数组,但当我编译时它显示:
“{”标记之前的预期表达式错误。
我该如何修复它?
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/