ciao raga non capiso perchè Visual C++ 2010 non mi compili questo codice! si tratta di un programmino per fare la trasposta di una matrice, mi da questo errore:

"Eccezione non gestita a 0x7c91e8e5 in dddddsss.exe: 0xC0000005: Violazione di accesso nella scrittura del percorso 0x00030ff8."

e mi si apre questa scheda


sapreste mica aiutarmi per favore?? grazie mille




codice:
#include <iostream>
using namespace std;
const int D=10;
void trasposta (int gesu[][D],int z);
int main()
{
	int matrice[D][D];
	int a;
	cout<<"ciao quanti valori vuoi che abbia la matrice?"<<endl;
	cin>>a;

	for(int i=0;i<a;i++)
	{
		cout<<"inserisci la riga numero "<<i+1<<endl;
		for(int j=0;j<a;j++)
		{
			cout<<"inserisci l'elemento "<<j+1<< "della riga "<<i+1<<endl;
		cin>> matrice[i][j];
		}
	}
	cout<<"la tua matrice è "<<endl;

	for(int i=0;i<a;i++)
	{
		for(int j=0; j<a;j++)
		{ 
			cout<<matrice[i][j];
		}
		cout<<endl;
	}
	 trasposta (matrice, a);
	cout<<"la trasposta è questa"<<endl;
	for(int i=0;i<a;i++){
		for(int j=0;j<a;j++)
		{ cout<<matrice [i][j];
		}cout<<endl;}
	system("pause");
	return 0;
}

void trasposta(int gesu[][10], int z)
{
	int temp;
	for(int i=0;i<z;i++)
	{
		for (int j=0; j<z;j++)
	{
		temp= gesu[i][j];
		gesu [i][j]=gesu[j][i];
		gesu[j][i]=temp;
		}
	}
	return;
}