PlayMa256 Posted August 25, 2013 at 07:27 PM Report #522620 Posted August 25, 2013 at 07:27 PM (edited) Bom, nos foi passada pelo professor o codigo, para realizar a correção dos erros que possui, dentre eles muitos. Estava a corrigir algumas coisas, me deparei com isto: int Obter_Tamanho_LS(Tdescritorno_ls d, int *tam) { Tdescritorno_ls percorre; tam = 0; if((d.prim) != NULL) { //exatamente aqui o problema percorre = d.prim; while (d.prim != NULL) { tam++; d.prim = d.prim; } } else { tam = 0; } } havia lido pela internet, que quando não se é declarado na funcao, como requisito um ponteiro, entao se utiliza o ponto pra chamar o membro da struct, nao o ->. Bom, foi o que fiz, mas ele diz que error: incompatible types when assigning to type 'Tdescritorno_ls' from type 'struct no_ls *' O percorrer estava declarado como um ponteiro, como o Tdescritorno_ls nao está como ponteiro, passei o percorrer pra tipo Tdescritorno_ls mesmo. Qual o problema disso? mais pra frente me deparei com um problema semelhante, tenho a funcao int Obter_Tamanho_LS(Tdescritorno_ls d, int *tam) a mesma está sendo usada dentro de uma outra funcao, a qual requer alguns outros paramentros, entao estou a chama-la desta maneira: Obter_Tamanho_LS(d->prim, d->tam); a mesma pede uma struct, entao estou passando isto a ele, só que um erro parecido me é expresso: error: incompatible type for argument 1 of 'Obter_Tamanho_LS'| Na funcao em si, int Obter_Tamanho_LS(Tdescritorno_ls d, int *tam), está dando o erro note: expected 'Tdescritorno_ls' but argument is of type 'struct no_ls *'|. OBS: isto é no cabeçalho da função, nao esta sendo invocada. Posso estar me confundindo com algumas coisas, entao peço ajuda para poder entender melhor esse conceito. Obrigado. Edited August 25, 2013 at 07:28 PM by PlayMa256
HappyHippyHippo Posted August 25, 2013 at 07:58 PM Report #522623 Posted August 25, 2013 at 07:58 PM (edited) error: incompatible types when assigning to type 'Tdescritorno_ls' from type 'struct no_ls *' o problema do typedef ... Tdescritorno_ls é na realidade um ponteiro : struct no_ls * logo será sempre usado o "->" desculpa .. li mal o post ... isso está uma confusão sem a definição da estrutura usada (Tdescritorno_ls) só posso presumir o seguinte: o membro prim do Tdescritorno_ls é um ponteiro, e daí vem o teu problema Edited August 25, 2013 at 08:13 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PlayMa256 Posted August 25, 2013 at 08:11 PM Author Report #522627 Posted August 25, 2013 at 08:11 PM (edited) entao, fiz a troca no percorre = d.prim pra percorre = d->prim e ele aparece: error: invalid type argument of '->' (have 'Tdescritorno_ls')| Esqueçi da descricao mesmo. typedef struct no_ls { int dado; struct no_ls *prox; } Tno_ls; typedef struct descritor_ls { int tam; struct no_ls *prim; struct no_ls *ult; } Tdescritorno_ls; Edited August 25, 2013 at 08:32 PM by PlayMa256
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now