次のようなレイアウトのコードがあります。を呼び出すと、topExample
/botExample
が正しく設定されていないと思いますaddTopBotExample
。これは、上位のボット変数が関数スタックにあり、関数が終了するとクリアされるためだと思いますか?おそらく最初に記憶する必要があると感じていますmalloc
が、それが正しいアプローチであっても、これをどのように行うかはわかりません。
typedef struct Example Example;
struct Example {
/* normal variables ...*/
Example *topExample;
Example *botExample;
};
....
void addTopBotExample(Example **example, int someVariable) {
Example top = createTopExample(int someVariable); //(createTopExample returns a
//type Example based on some input)
Example bot = createBotExample(int someVariable);
(*example)->topExample = ⊤
(*example)->botExample = ⊥
return;
}