声明和修改结构-CPP的静态数组

时间:2017-02-18 09:50:52

标签: c++ c arrays struct

我在头文件中定义了一个结构,它的数组如下:

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元素的花括号。

1 个答案:

答案 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,只能在函数中使用。