Strumenti Utente

Strumenti Sito


fisica:informatica:201415:esercitazioni:esercitazione7.5

Questa è una vecchia versione del documento!


Esercitazione allocazione dinamica

Esercizio 1: Sequenze e VLA

Realizzare un programma C che legge e memorizza in un VLA una sequenza di double di lunghezza non nota a tempo di compilazione. Richiedere all'utente di specificare la lunghezza prima di immettere la sequenza.

Esercizio 2: Sequenze e malloc()

Modificare la soluzione all'esercizio 1 in modo da utilizzare la funzione malloc() per allocare l'array dopo aver letto la lunghezza.

Verificare la corretta allocazione e gestire gli errori.

Esercizio 3: Allocazioni in grossi blocchi

Eseguire il seguente programma C

#include <stdio.h>
#include <stdlib.h>
#define SIZE 10000000000
 
int main (void) {
  double * h;
 
  h = malloc(SIZE*sizeof(double));
 
  if ( h == NULL ) {
    perror("malloc");
    exit(EXIT_FAILURE);
  }
 
  printf("Allocato h = %p\n",(void *) h);
 
  return 0;
}

cosa succede ? Cercate di capire che cosa succede quando va in esecuzione perror() andando a verificare il manuale (sezione 3 man 3 perror)

Esercizio 4: realloc()

Modificare la soluzione all'esercizio 2 in modo da utilizzare la funzione relloc() per fare crescere dinamicamente l'array senza richiedere la lunghezza della sequenza.

Verificare la corretta allocazione e gestire gli errori.

fisica/informatica/201415/esercitazioni/esercitazione7.5.1422983415.txt.gz · Ultima modifica: 03/02/2015 alle 17:10 (11 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki