我收到此结构的预期表达式错误
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} };
您不必担心初始化的顺序(此处)。
#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} };
您不必担心初始化的顺序(此处)。