There are probably several things wrong, without proper formatting and so forth I haven't got the energy to read it - particularly since you don't tell use what the compiler is complaining about. However this leapt out as a possible reason for non-compilation:
void initializeMatrix(matrix** M, long m,long n) {
matrix ** h;
initializeMatrix(*h,filas,columnas);
Try removing the "*" from the "*h" so the parameters match what you are passing...