为什么这段简单的代码执行的时候会出错?请高手帮忙改一下。多谢

为什么这段简单的代码执行的时候会出错?请高手帮忙改一下。谢谢
#include   <string.h>

int   main()
{
char   *   p   =   NULL;
int   Arr[100];

for(int   i=0;i <100;i++)
{
Arr[i]=i;
}

memcpy(p,Arr,100);

for(int   j=0;j <100;j++)
{
printf(   "%d ",   *p[j]   );
}

getchar();
return   0;
}

------解决方案--------------------
指针p并没有分配空间啊