关于结构指针类型数组做函数参数的一个有关问题

关于结构指针类型数组做函数参数的一个问题
#include <stdio.h>

typedef struct student
{
int ID;
}stu;

void process(stu* arr[])
{
int i;
for(i = 0; i < 3; i++)
{
arr[i]->ID = i + 1;
printf("id = %d\n", arr[i]->ID);
}
}

void main()
{
stu* class[3];
process(class);
}

大家看看这个程序错在哪了?非常拗口

------解决方案--------------------
使用未初始化的指针了.
另外, class 是 C++ 的关键字, 虽然这是 C 里面, 最好还是别用.


void main()
{
stu* cls[3] = { (stu*)malloc(sizeof(stu)), 
(stu*)malloc(sizeof(stu)), 
(stu*)malloc(sizeof(stu)) };

process(cls);
}