我在标题文件中定义了一个结构,它是这样的数组:
struct
{
int a;
char* b;
} S_element, s_array*;
static s_array my_data[3] = {1,"first", 2, "second", 3, "third" };
在源代码中,我包括这样的标题并访问此数组。我正在尝试更改数组元素结构内的字符串变量B的值,但是当我尝试更改struct Member -b的值时,程序正在崩溃。
对不起,此问题代码中的语法错误。到目前为止,我只能使用手机。
我不确定涉及静态成员的概念,并以这种方式初始化数组,而无需用于单个结构元素的卷发括号。
写作 struct{...}a;
与 struct name{...}; name a;
您不能写static s_array my_data[3]
,因为s_array
是struct,而不是类型。
另外,这不是重新启动结构数组的方法。
更改为:
typedef struct{
int a;
char* b;
} S_element, *s_array;
static S_element my_data[3] = {{1,"first"}, {2, "second"}, {3, "third"}};
看到我更改为S_Element,因为S_Array是指针,而不是结构。
另外,不要在标题中使用static
,仅在功能中。