suzy Posted May 13, 2008 Report Share Posted May 13, 2008 caros, tenho uma lista ligada simples, que ´composta por o nome do aluno e pelo seu numero, acontece que quero passar todos os numeros de alunos para um array de inteiros que tem de ser alocado dinamicamente. ja tou farta de tentar, mas o array so fica com o 1 numero de aluno da lista, pq? void contatudo (pcliente p) { int conta=0,i=0,*a; pcliente aux; aux=p->prox; while(p!=NULL) { conta++; a=(int*)malloc(sizeof(int)* conta); for(i=0;i<conta;i++) { a[i]=p->numero; } p=p->prox; } ja tentei incrementar tipo p=p->prox, uma vez e nao da Link to comment Share on other sites More sharing options...
TheDark Posted May 13, 2008 Report Share Posted May 13, 2008 Falta-te fechar a chaveta do while. E aux=p->prox; tem que estar dentro do while. E a condição do while tem que ter aux em vez de p. Desaparecido. Link to comment Share on other sites More sharing options...
suzy Posted May 13, 2008 Author Report Share Posted May 13, 2008 😁😉 continua a nao dar, realmente e estranho, deveria Link to comment Share on other sites More sharing options...
TheDark Posted May 14, 2008 Report Share Posted May 14, 2008 Escapou-me outro problema: o p=p->prox; tem que estar dentro do for. Desaparecido. Link to comment Share on other sites More sharing options...
nata79 Posted May 15, 2008 Report Share Posted May 15, 2008 com akele malloc dentro do while vais tar a reservar espaço na memória tantas vezes qts elementos houver na lista ligada, na 1ª iteração reservas epaço para 1 inteiro, na segunda para 2 e por aí fora até acabar a lista... o k deves fazer é com o apontador aux inicializado a p precorrer a lista ligada e contar os elementos, depois fora de qualker ciclo reservar espaço para o array com o malloc, e por fim num outro ciclo precorreres novamente a lista copiando os numeros para o array. arithmeticoverflow.wordpress.com Link to comment Share on other sites More sharing options...
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