tnode
- это тип указателя на структуру
Итак, когда вы используете
S->data = (tNode*)malloc(sizeof(tNode ) * maxSize);
, вы вводите тип с помощью (tnode*)
, используя указатель на указатель насостав.Также размер выделенной памяти будет размером указателя, а не размером структуры.Кроме того, вы не должны типизировать результат ваших вызовов malloc.
typedef для вашего Stack
также использует указатель на указатель структуры.Я думаю, это не то, что вы хотите для вашего приложения.
Вы должны использовать
typedef struct sNode {
TreeNode* data;
int top;
int maxSize;
} sNode, *Stack;
Тогда вы можете выделить память как
S->data = malloc(sizeof(TreeNode) * maxsize);