Use C++ e boost::shared_ptr e liberte-se do malloc. Ele é uma das razões pelas quais eu não gosto de programar em C puro; nunca sei por que é que dá o tal erro de execução sem perder alguns dias (ou até semanas) - na prática, jogo o código fora e escrevo em C++.
Dei uma ajeitada no seu código, agora deve executar sem problemas. Por favor, arrume-o para tratar os erros de alocação - tirei essa parte para poder enxergar o que deveria ser feito.
#include <stdio.h>
#include <stdlib.h>
void main()
{
int ***vetor,
*nodos;
int grafos,
num;
int i;
puts ("Entre com o numero de grafos:");
scanf("%i", &grafos);
// Atencao, para simplificar nao estou testando se malloc retornou NULL ou nao.
// Teste se esta de acordo com o que voce quer, e depois ponha o tratamento de NULL.
// Outra coisa que ajuda muito eh usar calloc em vez de malloc, porque
// ele ja deixa a memoria inicializada com zeros, o que ajuda muito a resolver problemas
// de tempo de execucao. Para seu uso, a diferenca de tempo eh absolutamente negligenciavel.
vetor = (int***) calloc (grafos, sizeof (int **));
nodos = (int*) calloc (grafos, sizeof (int));
for (num = 0; num < grafos; ++num) {
printf ("Entre com o numero de nodos do grafo %d\n", num);
scanf ("%i", &nodos[num]);
vetor [num] = (int**) calloc (nodos[num], sizeof (int *));
for (i = 0; i < nodos[num]; ++i) {
vetor [num][i] = (int*) calloc (nodos[num], sizeof (int));
}
}
}
[quote=enantiomero]Dei uma ajeitada no seu código, agora deve executar sem problemas. Por favor, arrume-o para tratar os erros de alocação - tirei essa parte para poder enxergar o que deveria ser feito.
[/quote]
Obrigada pela ajuda e pelas dicas! Consegui achar e resolver o problema com base no código que vc refez.