↓これはできるのに
int main( )
{
hoge *piyo;

piyo = ( hoge *)malloc( 10*sizeof( hoge ) );
piyo[ 8 ].a[ 1 ] = 81;
}

↓これでバスエラーになるのはなぜ?
int main( )
{
hoge *piyo;

func( piyo );
piyo[ 8 ].a[ 1 ] = 81;
}
int func( hoge *p )
{
p = ( hoge *)malloc( 10*sizeof( hoge ) );
}