1

サイズ 16 の構造体の配列を宣言する必要があります。

typedef struct node 
{
int tokenvalue;
struct  node *next;
char *n;
} node;
node *dummy=(node *)malloc(26*sizeof(node));

ノードダミー[26]も使用すると、セグメンテーション違反が発生します。私は何をすべきか?

4

2 に答える 2

6

You can't initialize objects having static storage with anything non compile-time constant. Leave it uninitialized and assign some memory to it in a function.

于 2012-08-21T14:21:18.693 に答える
4

main()非定数値またはコンパイル時に決定できない値でグローバル変数を初期化することはできないため、関数で初期化してみてください。

または、次のように宣言することもできます

node dummy[27];

malloc を使用する代わりにグローバル変数として (サイズが一定の場合)。

于 2012-08-21T14:23:30.937 に答える