2011-02-25 68 views
0

一個不同的字段我有一段代碼如下,並且當與評論(//錯誤這裏)的行執行,它設置狀態變量,而不是陣列中的元件。設定數組值設置在結構

我在結構體定義中的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

回答

3

你應該檢查code小於MAX_NUM

你的具體情況code可能是MAX_NUM + 1