typedef struct {
TipoApontador *listaAdj;
int numVertices;
int numArestas;
} TipoGrafo;
Método:
bool existeAresta(int v1, int v2, TipoGrafo *grafo){
TipoApontador *p;
p = (TipoApontador*)malloc(sizeof(TipoApontador));
*p = grafo->listaAdj[v1]; //começa a percorrer do inicio da lista de adjacencia de v1
while(p){
if (p->vdest == v2){ //linha que esta dando erro
return true;
}
p = p->prox; //linha que esta dando erro
}
free(p);
return false;
}
Os erros de compilação que ocorrem são os mesmos:
Request for member 'vdest' in '*p', which is of pointer type 'TipoApontador' {aka taresta} (maybe you meant to use '->' ?)
Request for member 'prox' in '*p', which is of pointer type 'TipoApontador' {aka taresta} (maybe you meant to use '->' ?)
Pergunta
carollima3
Olá!
Estou fazendo um trabalho da faculdade e tenho que implementar grafos por lista de adjacencia.
Tenho um método que verifica se existe uma aresta entre dois vertices, porém está dando erro de compilacao, segue o código abaixo:
Structs:
typedef struct taresta {
int vdest;
TipoPeso peso;
struct taresta * prox;
} TipoAresta;
typedef TipoAresta* TipoApontador;
typedef struct {
TipoApontador *listaAdj;
int numVertices;
int numArestas;
} TipoGrafo;
Método:
bool existeAresta(int v1, int v2, TipoGrafo *grafo){
TipoApontador *p;
p = (TipoApontador*)malloc(sizeof(TipoApontador));
*p = grafo->listaAdj[v1]; //começa a percorrer do inicio da lista de adjacencia de v1
while(p){
if (p->vdest == v2){ //linha que esta dando erro
return true;
}
p = p->prox; //linha que esta dando erro
}
free(p);
return false;
}
Os erros de compilação que ocorrem são os mesmos:
Request for member 'vdest' in '*p', which is of pointer type 'TipoApontador' {aka taresta} (maybe you meant to use '->' ?)
Request for member 'prox' in '*p', which is of pointer type 'TipoApontador' {aka taresta} (maybe you meant to use '->' ?)
Espero que alguém de ajude a enxergar o erro.
Obrigada desde já!!!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.