设定数组值设置在结构
问题描述:
一个不同的字段我有一段代码如下,并且当与评论(//错误这里)的行执行,它设置状态变量,而不是阵列中的元件。设定数组值设置在结构
我在结构体定义中的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;
答
你应该检查code
小于MAX_NUM
。
你的具体情况code
可能是MAX_NUM + 1
也许代码>然后MAX_NUM?你刚才manged复制不够代码... – rene 2011-02-25 00:08:07
我添加上面的代码,但它在我的代码示例#define MAX_NUM已经20 – emge 2011-02-25 00:19:10
@rene - 这也将打破,如果代码== MAX_NUM – OrangeDog 2011-02-25 00:23:29