
27/12/2007, 03:39
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 17 años, 3 meses Puntos: 0 | |
Error con calloc en ejecución Hola, me estoy volviendo loco con un error en ejecución en un calloc para reservar memoria de un vector apuntandolo desde un puntero, os copio el codigo:
// declaro variables
Grafo G;
tCoste **D;
vertice **P;
// llamada a función
Dijkstra (ent, G, D, P);
void Dijkstra (vertice origen, Grafo G, tCoste **D, vertice **P) {
boolean *S;
int i;
vertice v, w;
tCoste CosteMin, Owv;
S = calloc(G->numVert, sizeof(boolean));
if (S == NULL) ERROR("Dijkstra(): No hay memoria para S");
S[origen] = TRUE; /* Incluir origen en S */
*D = calloc(G->numVert, sizeof(tCoste));
if (*D == NULL) ERROR("Dijkstra(): No hay memoria para D");
*P = calloc(G->numVert, sizeof(vertice));
if (*P == NULL) ERROR("Dijkstra(): No hay memoria para P");
Se corta la ejecución en el calloc de P, pero para las variables D y S funciona bien. ¿Alguien sabe que me pasa?
Gracias y un saludo |