Strumenti Utente

Strumenti Sito


fisica:informatica:201617:esercitazione8

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
fisica:informatica:201617:esercitazione8 [05/05/2017 alle 12:19 (8 anni fa)] – creata Susanna Pelagattifisica:informatica:201617:esercitazione8 [18/05/2017 alle 09:48 (8 anni fa)] (versione attuale) – [Esercizio 5: Array sparsi (//a la Python//) implementati come liste] Susanna Pelagatti
Linea 49: Linea 49:
 e sviluppare un main() che ne testa il funzionamento. e sviluppare un main() che ne testa il funzionamento.
  
-===== Esercizio 4: (avanzato) Verificare i memory leak con ''mtrace'' (solo per chi ha mcheck.h/mtrace già installato) =====+===== Esercizio 4: Liste con doppio puntatore  ===== 
 +Realissare le funzioni degli esercizi precedenti utilizzando liste con puntatore al precedente e al successivo 
 +<code> 
 +typedef struct elem_d { 
 +  double val; 
 +  struct elem_d * prec; 
 +  struct elem_d * next; 
 +} elem_d_t ;  
 +</code> 
 +in questo caso la lista puo' essere definita ad esempiocome una struttura con due puntatori, uno alla testa ed uno alla coda  
 +<code> 
 +typedef struct lista_d { 
 +  struct elem_d * head; 
 +  struct elem_d * tail; 
 +} lista_d_t ; 
 +</code> 
 +come si modificano gli algoritmi sviluppati precedentemente ? 
 + 
 +===== Esercizio 5: Array sparsi (//a la Python//) implementati come liste  ===== 
 +Vogliamo realizzare degli array di double di grandi dimensioni che contengono solo una piccola percentuale di elementi diversi da 0 come liste concatenate definite come 
 +<code> 
 +typedef struct sparse_d { 
 +  double val; 
 +  unsigned index; 
 +  struct elem_d * next; 
 +} sparse_d_t ;  
 +</code> 
 +nella lista sono presenti solo gli elementi diversi da zero e per ogni elemento e' indicato l'indice a cui corrisponde. La Lista e' mantenuta ordinata rispetto al campo indice. 
 +Realizzare le funzioni ''put'' e ''get'' che permettono di leggere il valore dell'elemento di un certo indice ''i'' (''get'') e di modificarne il valore (''put''), un possibile prototipo per queste funzioni e': 
 +<code> 
 +double put (sparse_d_T * a, unsigned indice); 
 +sparse_d_t * put (sparse_d_T * a, double x, unsigned indice); 
 +</code> 
 + 
 +===== Esercizio 6: (avanzato) Verificare i memory leak con ''mtrace'' (solo per chi ha mcheck.h/mtrace già installato) =====
 Con riferimento al main sviluppato per l'esercizio precedente verificare che tutta la memoria allocata venga deallocata prima dell'uscita dal main(). Con riferimento al main sviluppato per l'esercizio precedente verificare che tutta la memoria allocata venga deallocata prima dell'uscita dal main().
  
Linea 77: Linea 111:
 questo rispondera' ''No memory leaks'' se tutta la memoria e' stata deallocata o fornira' indicazioni su dove e' stata allocata la mamoria rimasta da deallocare. questo rispondera' ''No memory leaks'' se tutta la memoria e' stata deallocata o fornira' indicazioni su dove e' stata allocata la mamoria rimasta da deallocare.
  
-===== Esercizio 5: (avanzato) verificare gli accessi in memoria: valgrind =====+===== Esercizio 7: (avanzato) verificare gli accessi in memoria: valgrind =====
  
 Verificare la correttezza degli accessi ai puntatori dello heap compiuti dalle funzioni su liste sviluppate negli esercizi precedenti utilizzando ''valgrind'' Verificare la correttezza degli accessi ai puntatori dello heap compiuti dalle funzioni su liste sviluppate negli esercizi precedenti utilizzando ''valgrind''
fisica/informatica/201617/esercitazione8.1493986760.txt.gz · Ultima modifica: 05/05/2017 alle 12:19 (8 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki