0

谁能指出我为什么syntax error: expected expression before '{' token进去

T[SIZE] = {NULL}; 

在下面的代码段中?谢谢。

typedef struct SetObject{
    int key;
    struct SetObject *prev;
    struct SetObject *next;
} Node;

Node *T[SIZE]; //global variable

void initT(void) {
    T[SIZE] = {NULL};
}
4

2 回答 2

5

要将指针值分配给数组元素,请使用:

T[SIZE] = NULL;

NULL不需要大括号。

第二个问题是SIZE数组中的索引无效T有效索引范围从0SIZE-1。分配给T[SIZE]将导致未定义的行为。

于 2012-05-04T23:20:56.633 回答
1

如果 T 是指向 T 的指针数组,则 T[index] 是指向 T 的指针,你应该写:

T[index] = NULL;

(所以 NULL 周围没有花括号)。

但是您的代码有更多错误。T 是一个全局变量,一个包含 SIZE 个元素的数组。这意味着第一个元素的索引为 0,最后一个元素的索引为 SIZE-1。所以写作T[SIZE] = NULL;实际上是不正确的,并且可能会使您的应用程序崩溃。

你想在这里实现什么?

于 2012-05-04T23:23:39.067 回答