Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    significa che in quella funzione ribalti la lista attraverso i puntatori e che poi restituisci il puntatore al nuovo primo elemento e lo assegni a first, che punta al primo...
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  2. #12
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    guarda non funziona...sto provando a fare il tutto con degli array dinamici...ma non mi riescono (d'altronde nn li ho mai fatti e li ho appena guardati).

    @infinitejustice: la funzione non va...mi cancella tutti gli ultimi elementi e mi fa puntare il primo a NULL!


  3. #13
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    struct linked{
    	int value;
    	struct linked *next;
    	} *first = NULL, *new;
    
    
    void add(int);
    void show(struct linked *);
    struct linked * reverse(void);
    
    void main(){
    
    	add(10);
    	show(first);
    	first = reverse();
    	show(first);
    }
    
    //Parametri: nr elementi da aggiungere
    void add(int nr){
    
    	int i = 1;
    
    	while(nr--){
    		if(!(new = (struct linked *)malloc(sizeof(struct linked))))
    			abort();
    		(*(new)).value = i++;
    		(*(new)).next = first;
    		first = new;
    		}
    }
    
    //Parametri: puntatore al primo elemento
    void show(struct linked *current){
    
    	for( ; current != NULL; current = (*(current)).next)
    		fprintf(stdout, "%d ", (*(current)).value);
    	fprintf(stdout, "\n");
    }
    
    //Valore di ritorno: puntatore al nuovo primo elemento
    struct linked * reverse(){
    
    	struct linked *current = first, *temp, *newfirst = NULL;
    
    	while(current){
    		temp = current->next;
    		current->next = newfirst;
    		newfirst = current;
    		current = temp;
    		}
    
    return newfirst;
    }
    10 9 8 7 6 5 4 3 2 1
    1 2 3 4 5 6 7 8 9 10
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.