問題は構造体に関数を介して値を追加することに関係します。正直なところ、私は問題を解決できませんでした(多くの時間を費やしていました)ので、私はあなたの助けを求めています。プログラムを実行している間、私はsegmentation fault
を得ます。これは、stack stos
の変数を使用しているときに発生します。構造体に値を参照して値を追加する際のセグメンテーションエラー
typedef struct e {
int zaglebienie[100];
char *nazwa_funkcji[100];
int poz;
} *stack;
void put_on_fun_stack(int par_level, char *funame, stack stos) {
int i = stos->poz;
stos->zaglebienie[i] = par_level;
char *funkcja = strdup(funame);
stos->nazwa_funkcji[i] = funkcja;
stos->poz++;
}
int main() {
char *p = "makro";
stack stos;
stos->zaglebienie[0] = 0;
put_on_fun_stack(1, p, stos);
return 0;
}
'poz'初期化されていない。 –
**決して* typedefポインタはありません!遅かれ早かれ、あなたは結局問題に遭遇します。あなたの場合、それはより早かった。 – Olaf
上記への翻訳: 'stos'は割り当てられていないポインタです。はい、typedefedポインタは私も混乱しています。 –