Cでスタックを行うのに行き詰まりました。誰かが私を助けてくれればありがたいです。これが私のコードです:
ヘッダ
typedef struct stackEl stackEl;
typedef struct Task Task;
struct stackEl{
struct Task *zad;
struct stackEl *last;
};
struct Task{
int x;
int y;
};
ソース
void add(stackEl *main, Task *adding)
{
stackEl tmp;
tmp.last= main;
tmp.zad = adding;
*main=tmp;
}
これは、単一の要素をスタックに追加するのではなく、1 つずつ相互にポイントすることにより、無限の数の要素を作成します。修理方法がわかりません。私はこのようにそれをやろうとしました:
void add(stackEl *main, Task *adding )
{
stackEl *tmp;
tmp = (stackEl*)malloc(sizeof(stackEl));
tmp->last= main;
tmp->zad = adding;
main=tmp;
}
このメソッドを使用すると、要素がスタックの一番上に追加されますが、メイン関数のスタックは変更されません。