2次元配列を動的に確保したいのですが
class A{
public:
BYTE x;
BYTE y;
BYTE p
};

A** a;
void Load(int x,int y){
a=new A*[x];
for(int i=0;i<x;i++){
→a[i]=new A[y];
}

}

int main(){
Load(100,100);
}

こうやると強制終了ダイアログが出て、落ちます。
VC++のエラーメッセージは
0xC0000005: Access Violation。で、
デバッガでは→の部分に印がつきます。
どこが悪いのでしょうか。