声明和修改结构的静态数组 -CPP
Posted
技术标签:
【中文标题】声明和修改结构的静态数组 -CPP【英文标题】:Declaring and modifying Static array of structure -CPP 【发布时间】:2017-02-18 09:50:52 【问题描述】:我在头文件中定义了一个结构,它是这样的数组:
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 的值时,程序此时崩溃了。
对于此问题代码中的语法错误,我们深表歉意。到目前为止,我只能使用我的手机。
我不确定涉及静态成员的概念,以及以这种方式初始化数组,而无需为单个结构元素使用花括号。
【问题讨论】:
C 还是 C++?请选择一种编程语言! 【参考方案1】:写struct...a;
和struct name...; name a;
一样
你不能写static s_array my_data[3]
,因为s_array
是结构,而不是类型。
另外,这不是重新启动结构数组的方法。
改为:
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
,只能在函数中使用。
【讨论】:
因为 s_array 是结构,而不是类型 ...什么? O.o 感谢您指出我的代码中的问题。现在在一个函数中,我循环遍历每个数组元素并尝试为结构成员重新分配不同的值。但是当我这样做时程序崩溃了。静态成员中的值是只读的吗? 因为s_array是struct,不是type表示不能写:struct... a; a b;
以上是关于声明和修改结构的静态数组 -CPP的主要内容,如果未能解决你的问题,请参考以下文章