我在头文件中定义了一个结构,它的数组如下:
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元素的花括号。
答案 0 :(得分:1)
撰写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
,只能在函数中使用。