为啥这里显示seq无效数据啊

bool CreatBTree(BTNode*& T, char str[], int n)//创建二叉树
{
BTNode* seq[MAXSIZE];//用顺序栈seq来保存双亲结点
seq[n] = 0;
BTNode* p=NULL;
int top = 0, flag=0 ;
for (int j = 0; j < n; j++)//遍历str
{
char c = str[j];
if (c == '(') //进栈
{
top++;
seq[top]=p ;
flag = 1; //开始处理左孩子
}

    else if (c == ')')//出栈
    {
        top--;
    }

    else if (c == ',')//开始处理右孩子
    {
        flag = 2;
    }

    else  //c为单个字符,创建一个节点p保存该结点值,根据flag值进行操作
    {
        p = (BTNode*)malloc(sizeof(BTNode));
        if (p == NULL)
            return false;
            p->data = c;
            p->lchild = p->rchild = NULL;
            if (T == NULL)
                T = p;
            else if (flag == 1)
                seq[top]->lchild = p;
            else
                seq[top]->rchild = p;
        }
    
}

}

img

img

seq[n] = 0;这是要干什么
seq是个指针数组
seq[n]是个指针
你把指针的值赋值成0??
seq[top]=p ;这也不对呀,p是NULL,你给top赋值个空指针是要干什么