#include <stdio.h>
#include <stdlib.h>

struct matriz{
    int** elemento;
    int nlinhas;
    int ncolunas;
};

typedef struct matriz Matriz;

Matriz* inicializaMatriz(int nlinhas, int ncolunas){
    Matriz* mat = malloc(sizeof(Matriz));
    mat->elemento = malloc(sizeof(int*) * nlinhas);
    mat->nlinhas = nlinhas;
    mat->ncolunas = ncolunas;

    int i;
    for (i = 0; i < nlinhas; ++i){
        mat->elemento[i] = malloc(sizeof(int) * ncolunas);
    }
    return mat;
}

void modificaElemento(Matriz* mat, int linha, int coluna, int elem){
    mat->elemento[linha][coluna] = elem;
}

int main() {

    Matriz* mat = inicializaMatriz(5, 3);
    modificaElemento(mat, 1, 1, 15);
    printf("%d", mat->elemento[1][1]);

    return 0;
}
