Alocação Dinâmica de Matrizes

Tive dificuldades com esta tarefa de MC202.

Consegui que meu programa exibisse corretamente as matrizes e fizesse as contas
necessárias, porém, ao submeter para o susy, encontrei problemas relacionados
à alocação de memória: tamanho máximo da pilha ou da memória dinâmica
excedido, ou talvez apontador inválido (código 139)

A ferramenta valgrind me mostrou que o erro estava na alocação da matriz.
A função era dada pelo professor, faltando completá-la.

As matrizes eram definidas como ponteiros de ponteiros:

int **matriz1;

E a função problemática é essa:

void alocaMemoria(int*** pmat, int numlinhas, int numcols){
int i;    
*pmat= (int **)malloc(numlinhas*sizeof(int*));
for(i=0;i < numlinhas;i++){
/*   ... = (int *)malloc(numcols*sizeof(int)); -- linha original */
     **(pmat+i) = (int *)malloc(numcols*sizeof(int))
  }
}

Agradeço a quem puder corrigir a função acima, e me explicar porque a minha
alocação está errada!

Add Done

    Please sign in to answer question.

    8
    Alexandre Kunieda

    http://umamao.com/questions/alocacao-dinamic...rs/4c8906e079de4f1a200003b8

    almost 2 years ago Andrea Bucci said:

    Obrigada, Alexandre! Havia muitos anos que eu não precisava trabalhar com ponteiros, acho que eu não ia enxergar a posição correta dos "*" e "()".

    6
    Rodolfo

    http://umamao.com/questions/alocacao-dinamic...rs/4c8906e079de4f1a200003b9

    almost 2 years ago Andrea Bucci said:

    Prof, obrigada pela resposta. Desta forma eu ainda me lembro como faz. :)
    O problema é que, para este lab, eu só podia alterar a linha marcada.

    Search results:
    Alocação dinâmica de matrizes C++ (RESOLVIDO)

    www.hardware.com.br/comunidade/alocacao-dinamica/879330

    Alocação dinâmica de matrizes C++ (RESOLVIDO) [Programação, scripts, web e banco de dados] #879330

    INFO: Alocação de memória dinâmica para matrizes Two-Dimensional

    support.microsoft.com/kb/104639/pt-br

    A linguagem C não internamente oferece suporte a alocação de memória dinâmica para matrizes bidimensionais. A criação de tal uma estrutura requer alguns ...

    Curso de C

    www.mtm.ufsc.br/~azeredo/cursoC/aulas/ca70.html

    A alocação dinâmica de memória para matrizes é realizada da mesma forma que para vetores, com a diferença que teremos um ponteiro apontando para outro ponteiro que ...

    Alocação dinâmica de memória - Instituto de Matemática e ...

    www.ime.usp.br/~pf/algoritmos/aulas/aloca.html

    Alocação dinâmica de memória. As declarações abaixo alocam memória para diversas ... Vetores e matrizes. Eis como um vetor (= array) com n elementos inteiros pode ...

    Variable-length array - Wikipedia, the free encyclopedia

    en.wikipedia.org/wiki/Variable-length_array

    In programming, a variable-length array (or VLA) is an array data structure of automatic storage duration whose length is determined at run time (instead of at ...

    Search results provided by Bing | Keep searching on Bing / Google