0

構造体の配列の配列を使用してシンボルテーブルを作成しようとしています。

現在、構造体の配列があり、次のように作成されています。

#define MAXSIZE 20 /* maximum number of symbols */
#define MAXSCOPE 10 /* maximum number of scope levels */

 struct tableEntry {
 char *name;
 char *args;
 int value;
 int scope;
 char *type;
 int used;
 } tableEntry [MAXSIZE];

それは動作しますが、私はこのようなものを作りたいです:

symbolTable[MAXSCOPE].tableEntry[MAXSIZE]

どうすればいいですか?私がやろうとしていることは理にかなっていますか?

4

3 に答える 3

3
struct tableEntry symbolTable[MAXSCOPE];

そして例えば使用する

symbolTable[scope][entry].value;
于 2009-12-17T04:34:31.583 に答える
2

構造体の 2 次元配列を作成します。

// Define the type
typedef struct tableEntry {
    char *name;
    char *args;
    int value;
    int scope;
    char *type;
    int used;
} tableEntry;

// Instantiate a 2D array of this type
tableEntry myArray[MAXSCOPE][MAXSIZE];

次のように個々のエントリにアクセスできるようになりました。

// Initialise 'value' in each entry to 2
int scope=0;
int size=0;
for (; scope < MAXSCOPE; scope++)
{
    for (; size < MAXSIZE; size++)
    {
        myArray[scope][size].value = 2;
    }
}
于 2009-12-17T04:29:08.913 に答える