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は必要ありません。

2番目の問題は、配列へSIZE無効なインデックスです。T有効なインデックスの範囲はから0ですSIZE-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 に答える