suzy Posted May 13, 2008 at 10:20 PM Report Share #184930 Posted May 13, 2008 at 10:20 PM 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 at 11:20 PM Report Share #184949 Posted May 13, 2008 at 11:20 PM 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 at 11:48 PM Author Report Share #184959 Posted May 13, 2008 at 11:48 PM 😁😉 continua a nao dar, realmente e estranho, deveria Link to comment Share on other sites More sharing options...
TheDark Posted May 14, 2008 at 12:07 AM Report Share #184962 Posted May 14, 2008 at 12:07 AM 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 at 05:59 PM Report Share #185331 Posted May 15, 2008 at 05:59 PM 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