void alocaFantasma(int quantidadeFantasmas, int** fantasmas){
fantasmas = malloc(sizeof(int**) * quantidadeFantasmas);
for(int i = 0; i < quantidadeFantasmas; i++){
fantasmas[i] = malloc(sizeof(int*) * 5);
}
}
O codigo acima funcionava perfeitamente para alocar dinamicamente a memoria do array fantasmas[][] quando dentro do bloco da main(), mas quando transferi ela para uma função, a primeira vez que o programa tentou usar fantasmas[][] deu crash. Imagino que seja um problema na alocação, mas não sei qual o problema dessa chamada de função. A chamada está dessa forma na main():
alocaFantasma(quantidadeFantasmas, fantasmas);
A unica coisa que consequi pensar é que a função alocaFantasma aloca a memória para a variável existente dentro de seu escopo, e a fantasmas da main fica sem alocação, mas se tratando de ponteiros, não deveriam estar endereçados para o lugar certo? Preciso saber quais são as regras que estão atrapalhando o alocamento usando chamada de função, e como fazer para resolver esse alocamento dentro de uma chamada de função.