gRoOvE 0 Denunciar post Postado Maio 10, 2010 Tenho o seguinte código: Estrutura - está na função main typedef struct { int cod; char nome[60]; } materialLivro; Função registrarMaterial void registrarMaterial(void) { materialLivro* livro = NULL; livro = (materialLivro*)malloc(sizeof(materialLivro)); if(livro == NULL) return; livro->cod = 225; // chama o módulo de entrada de dados obter(&livro); return; } Função obter void obter(materialLivro** livro) { printf("%d\n\n",*livro->cod); return; } Pois bem, quero visualizar dentro da função obter, o valor gravado no campo cod da estrutura. Quando tento compilar gera o seguinte erro: lise e Projeto de Sistemas I/Estudo de Caso-Biblioteca/obter.c|20|error: request for member 'cod' in '* livro', which is of non-class type 'materialLivro*'| Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Maio 10, 2010 parênteses. Em C, o operador unário de dereferenciação, *, tem a precedência mais baixa que o operador de acesso, ->. *a->b //dereferencia b, que é membro de a (*a)->b //derefencia a e otém b Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Maio 10, 2010 Resolveu Victor, vlw..porém não entendi essa precedência, sabe onde tem mais informações a respeito? :) Compartilhar este post Link para o post Compartilhar em outros sites