, поэтому я пытаюсь реализовать некоторую форму стека. Вот определение я есть в моем файле заголовка:Выделение памяти для структуры (стека)
struct tStack
{
int data;
struct tStack *dptr;
};
Тогда я иметь функцию inicialize стека в другой файл, от того, что она называется:
int stack_init(struct tStack *top)
{
top = (struct tStack*)malloc(sizeof(struct tStack));
if (top == NULL)
{
return E_INTERN;
}
top->data = '#';
top->dptr = NULL;
return 0;
}
И я вызвать функцию инициализации в мой основной файл, как это:
struct tStack *top = NULL;
int err = 0;
err = stack_init(top);
проблема заключается в том, что стек не получит inicialized и указатель на вершине по-прежнему пустым. Я думаю, что проблема находится где-то в прохождении указателей, потому что я плохо разбираюсь в указателях: D
вы передаете в 'STRUCT tStack *' на 'stack_init'. это означает, что выделение, которое вы выполняете, присваивается только теневому параметру и не оказывает влияния со стороны – amdixon