maquina Postado Setembro 8, 2007 Denunciar Share Postado Setembro 8, 2007 (editado) ---1---uma função do tipo char **(xxx)esse char ** é ponteiro ponteiro, ponteiro bidemensional ou o q?já tentei retornar de todas maneiras possiveis uma matriz q quero retornar e nada, alguém sabe de que jeito se faz??---2---typedef struct lista { int info; struct lista *prox; } Lista; Lista* p; /*lista auxiliar*/ l->info=p->info; li=p->prox; p=p->prox; co=p->prox;ta achando erro nessa parte porque??obrigado Editado Setembro 8, 2007 por maquina Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Lucas Couto Gonçalves de Paula Postado Setembro 8, 2007 Denunciar Share Postado Setembro 8, 2007 1- Se você declara alguma coisa como char **p (p é uma variável qualquer), esta variável será um vetor de ponteiros para char. No C isso pode ser uma matriz de duas dimensões, falando em mais alto nível, do tipo char p[3][10]: onde o primeiro indice [0] indica o endereço da primeira palavra que pode ter até 10 letras indice [10], o segundo [1] é o endereço para a segunda palavra que também pode ter 10 letras indice [10] e assim por diante. Só que no primeiro caso você não se preocupa com dimensões. Ou seja é como você mesmo falou um ponteiro para ponteiro, só que nesse caso é um vetor de ponteiros para char. Agora caso você queira trabalhar esta varíavel em uma função terá de passá-la por referência como um outro argumento qualquer, declarando nos parâmetros da função algo do tipo char **p, ou char *p[], ou char[][]. Isso é tudo mesma coisa. Agora tenha em mente uma coisa se for usar esse vetor de ponteiros em funções como strcmp, ou gets você deverá passar da maneira mais fácil algo do tipo p[0], que é o endereço da primeira palavra do matriz que você passou por referência (matriz e ponteiros são intimamente ligados), pois essas funções pedem apenas o endereço da string. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Lucas Couto Gonçalves de Paula Postado Setembro 8, 2007 Denunciar Share Postado Setembro 8, 2007 2- Ao declarar: Lista* p; você declarou um ponteiro para a sua estrutura que você apelidou de Lista. Porque você está usando uma lista auxiliar. Me mande a declaração das suas variáveis e me diga qual linha que ele está dando erro e qual é o erro (pode ser em inglês). Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
maquina
---1---
uma função do tipo char **(xxx)
esse char ** é ponteiro ponteiro, ponteiro bidemensional ou o q?
já tentei retornar de todas maneiras possiveis uma matriz q quero retornar e nada, alguém sabe de que jeito se faz??
---2---
typedef struct lista {
int info;
struct lista *prox;
} Lista;
Lista* p; /*lista auxiliar*/
l->info=p->info;
li=p->prox;
p=p->prox;
co=p->prox;
ta achando erro nessa parte porque??
obrigado
Editado por maquinaLink 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.