Eu acho que o que você precisa é um programa do tipo
#include <stdio.h>
#include <stdlib.h>
typedef float ** matriz; //Define um tipo para matrizes
matriz cria_matriz(int m, int n) {
matriz a;
int i;
a = malloc(m*sizeof(float *));
for (i = 0; i < m; i++) a[i] = malloc(n*sizeof(float));
return(a);
}
int main(int argc, char **argv)
{
matriz x = cria_matriz(2, 2);
x[0][0] = 1;
x[0][1] = 0.5;
x[1][0] = -2.5;
x[1][1] = 0.36;
printf("Soma = %f\n", x[0][0] + x[0][1] + x[1][0] + x[1][1]);
return(0);
}
Observe que o que esse código faz é definir um tipo de variável chamado matriz, que nada mais é do que um ponteiro duplo para float, cria uma função para retornar uma matriz já alocada e o programa principal testa essa função.
Espero ter ajudado.