No me ha quedado claro el código que me has puesto, si con la segunda linea ya reservas espacio para una matriz, ¿ Para que es ese for ?.
Gracias.
Saludos.
Fijate
matriz = (int**) malloc(sizeof(int*) * 10);
lo que hace es reservar 10 punteros,el (int**) es un cast, una "conversión". Luego en
int i;
for(i=0; i<10; i++)
matriz[i] = (int*) malloc(sizeof(int) * 10);
para cada puntero reservado reserva 1 entero.
Eso jodido para quien no ha visto algo de ingeniería inversa ya que lo ves de otro modo, te recomiendo que pases un poco por los tutes de Introducción al ollydbg de ricardo narvaja, No explica punteros pero te das cuenta de algunas cosas por ej: que cada byte de memoria es apuntado por una dirección de memoria.