关于malloc的问题,这种写法有什么问题呢,请问

请问我这样申请内存空间有什么问题呢,本地跑是没问题的,但在线ac就报段错误了
这个是pat乙级试题1025


#include "stdio.h"
#include "stdlib.h"
typedef struct 
{
int next,data;
}list;
int main()
{
    int N,K,add1,sum=1,order[100000];
    scanf("%d %d %d",&order[0],&N,&K);
    list *node;
    node=(list *)malloc(sizeof(list)*N);
    for(int i=0;i<N;i++)
    {
        scanf("%d",&add1);
        scanf("%d %d",&node[add1].data,&node[add1].next);
    }
    add1=order[0];
    while(add1!=-1)
    {
        order[sum++]=node[add1].next;
       add1=node[add1].next;
    }
    sum--;
    for(int i=0;i<sum;i+=K)
    {
        int j=i+K-1,I=i;
        if(j>sum)
        break;
        while(I<=j)
        {
            int temp=order[I];
            order[I]=order[j];
            order[j]=temp;
            I++;j--;
        } 
    }
    for(int i=0;i<sum;i++)
    {
        if(i==sum-1)
        {
            printf("%05d %d -1",order[i],node[order[i]].data);
        }
        else
        {
            printf("%05d %d %05d\n",order[i],node[order[i]].data,order[i+1]);
        }
    }
}