c语言指针的相关小问题

为什么不是cosList.rhead[0]不是NULL


//十字链表

#include
#include

typedef int ElemType;

typedef struct QLNode {
    int i,j;//表示行和列的下标
    ElemType e;
    struct QLNode *right,*down; //表示向右、向下的下一个结点
} QLNode,*QLink;

typedef struct {
    QLink *rhead,*chead;    //分别表示行数组,列数组
    int row,col,num;        //分别表示总行数、总列数和非零元个数
} CrossList;

int main() {
    CrossList cosList;
    //输入 总行数、总列数和非零元个数
    scanf("%d%d%d",&cosList.row,&cosList.col,&cosList.num);
    //给行数组和列数组分配空间
    cosList.rhead=(QLink *)malloc((cosList.row+1)*sizeof(QLink));
    cosList.chead=(QLink *)malloc((cosList.col+1)*sizeof(QLink));
    int y=cosList.rhead[0]==NULL;//我没给他一级指针赋予空间,怎么不为NULL 
        printf("%d",y);//0
    if(!cosList.rhead) exit(-1);
    if(!cosList.chead) exit(-1);
}

malloc分配内存,不管初始化的,rhead[0]的值随机