我收到此结构的预期表达式错误

I get a expected an expression error with this struct

#include <stdio.h>

typedef struct{
    int len;
    int vec[16];
}tvector;

int main(){
    int elem, res;
    tvector v;
    v.len = 16;
    v.vec[16] = {3, 15, 19, 19, 23, 32, 38, 53, 123, 321, 543, 1000, 1123, 6578, 6660, 7999};

我不知道它有什么问题,我在第12行第一个括号{

我尝试了其他解决方法,但它使情况变得更糟,我也做了一些研究,但 none 有所帮助。

谢谢。

您正试图在不允许的赋值中使用初始值设定项列表。您也不能直接分配给一个数组,这是您 认为 所做的,但您实际上是在分配给一个数组元素(并且在最后一个) .

可以做的是在声明时初始化结构:

tvector v = { 16, {3, 15, 19, 19, 23, 32, 38, 53, 123, 321, 543, 1000, 1123, 6578, 6660, 7999} };

你可以使用这个方法:

tvector v = { .len = 16, .vec = {3, 15, 19, 19, 23, 32, 38, 53, 123, 321, 543, 1000, 1123, 6578, 6660, 7999} };

您不必担心初始化的顺序(此处)。