声明和修改结构的静态数组 -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的主要内容,如果未能解决你的问题,请参考以下文章

第四次实验

C语言数据类型一文详解

声明内容符合 View 协议的结构数组

es6-数组,对象,字符串的解构

数据结构之数组

如何将数据存储在动态二维数组中,该数组在 C++ 中的另一个结构中也使用的结构中声明