设定数组值设置在结构

问题描述:

一个不同的字段我有一段代码如下,并且当与评论(//错误这里)的行执行,它设置状态变量,而不是阵列中的元件。设定数组值设置在结构

我在结构体定义中的array_name元素上移动了int状态元素,这似乎修复了它,我怀疑我正在改变一个指针并且缺少一些括号,但我不知道为什么会发生这种情况。

#define MAX_NUM 20 
typedef struct FOO_T { 
    bool abc; 
    int id; 
    int array_name[MAX_NUM]; 
    int counter; 
    int status; 
    SYSTEMTIME timestamp; 

    struct FOO_T *next; 
} 

if (curr->array_name[code] == 0) 
{ 
    curr->counter++; 
    curr->array_name[code] = curr->counter; //error here 
} 

我也初始化不同的功能整体结构,该函数的部分是这样的:

thing->id = 0; 
for (i = 0; i < MAX_NUM; i++) thing->array_name[i] = 0; 
thing->counter = 0; 
thing->status = 0; 
+2

也许代码>然后MAX_NUM?你刚才manged复制不够代码... – rene 2011-02-25 00:08:07

+0

我添加上面的代码,但它在我的代码示例#define MAX_NUM已经20 – emge 2011-02-25 00:19:10

+0

@rene - 这也将打破,如果代码== MAX_NUM – OrangeDog 2011-02-25 00:23:29

你应该检查code小于MAX_NUM

你的具体情况code可能是MAX_NUM + 1