我尝试在Huffman结构中初始化代码数组,但是当我编译它时显示:
Error expected expression before '{' token.
我如何解决?
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};
答案 0 :(得分:1)
错误:错误是由于初始化造成的。
声明1:line[1].code[1] = 10; //WORKS
声明2:line[2].code[10]= {0,0,1,0,1}; //Wrong
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....