我被困在 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;
}
这个通过一个一个地指向彼此而不是将单个元素添加到堆栈来创建无限数量的元素。我不知道如何修复它。我试图这样做:
void add(stackEl *main, Task *adding )
{
stackEl *tmp;
tmp = (stackEl*)malloc(sizeof(stackEl));
tmp->last= main;
tmp->zad = adding;
main=tmp;
}
使用此方法元素被添加到堆栈顶部,但它不会修改主函数中的堆栈。