C 中二维数组初始有关问题.如何初始不了?

C 中二维数组初始问题..怎么初始不了????
例如

char   array[10][10];  

for(int   i=0;i <10;i++){   //我想把第二维全设为NULL
      array[i]   =   NULL;     //*******************************
}

//然后当要输出时,   把有数据的行输出,
for(int   j=0;j <10;j++){
    if(array[j]   !=   NULL){
          printf( "%s\n ",array[j]);
    }
}

//为什么上面打星号的那行会出错啊..

------解决方案--------------------
char array[10]
char *p=array

for(int i=0;i <10;i++){
array[i] = NULL;
}

如果用直接就
printf( "%s\n ",p);
------解决方案--------------------
char **array = new char*[10];
for(int i = 0;i <10;++i)
{
array[i] = new char[10];
}
这样分配就可以像你那样用了