Chat del 20 Ottobre 2017 dalle 19:11:37 alle 19:38:06
- Stefano Salvi
- Scusate il ritardo. Stavo compilando un progetto per scuola e mi è scappata l\'ora...
- Francesco MORETTI
- buonasera
- Mattia MASINI
- buonasera
- Stefano Salvi
- bona sera!
- Cominciate pure tranquliil.
- Francesco MORETTI
- potrebbe rispiegare il funzionamento del malloc?
- Alessia BULKU
- E anche le aree di memoria se non è un problema
- Stefano Salvi
- void *malloc(int size); recupera dall\'heap un bolcco di memoria della dimensione data (che in realtà è un tipo diverso dall\'int, tipo unsigned ,long) in byte e ne restituisce il puntatore. L\'abbiamo usata per recuperare un array di caratteri di dimensione data, dijnamicamente.
- Le aree di memoria sono "text" o "testo", che contiene le istruzioni del programma; "static" o statiche che contiene le variabili globali del programma (o quelle dichiarate statiche nelle funzioni", stack dove vengono immagazzinati nell\'ordine i record di attivazione delle funzioni, creati quando richiamo la funzione ed eliminati quando la funzione termina; questi blocchi di solito sono allocati a aprtire dall\'alto, verso il basso; heap dove vengono recuperati i blocchi dimmeoria "dinamica" dalla funzione "malloc" e dalle sue parenti. Può diventare frammentata perché i blocchi possono essre rlilasciati (delaccocati/liberati) in qualunque ordine.
- Sulle dimensioni dei tipi di dato e sui formati numerici con o senza segno come siete messi?
- Mattia MAZZI
- Buonasera, potrebbe dirmi la differenza tra una variabile char e unsigned char
- Alessia BULKU
- se ha voglia di fare un piccolo ripasso sui tipi di dati e sui formati numerici penso non faccia male prof
- Stefano Salvi
- La variabile "char" contiene un intero "piccolo" con segno che può andare da -128 a 127, codificato in complemento a 2; la variabile "unsigned char" invece può contenere solo numeri senza segno, quindi positivi e vanno da 0 a 127.
- Mattia MASINI
- io non ho capito in base a cosa un int occupa2,4o8 byte
- Stefano Salvi
- Partiamo da Masini: ogni macchina ha una dimensione del BUS (ed una dimensione minima per gli interi, se è a 8 bit). Il tipo "int" è definito come "l\'intero naturale della macchina" quindi quello che ha la stessa dimensione del bus (salvo per gli 8 bit). Gli altri tipi invece hanno una dimensione precisa (char 1 byte, short 2 byte, long 4 byte, long long 8 byte).
- Mattia MASINI
- grazie
- potrebbe anche dirmi per favore la differenza tra fgets e scanf?
- Stefano Salvi
- Bulku: per gli interi ho già detto or ora, salvo l\'eventuale modificatore "unsigned" già citato precedentemente. Oltre a questi abbiamo i "boleani", che non esistono ma sono un qualunque tipo intero, nel quale lo 0 vale per FALSO e qualunque altro valore vale per "VERO". Poi abbiamo i tipi in virgola moboile, Float e Double (dovrebbero essere a 32 e 64 bit), nei quali i bit sono divisi tra mantissa (a virgola fissa, con due bit interi e il rsto decimali) e l\'esponente (un numero intero con segno che indica la pontenza del 2 per la quale moltiplicar ela mantissa).
- Alessandro BRANCHINI
- prof prima ha scritto che unsigned char va da 0 a 127, ma in realtà va da 0 a 255
- Stefano Salvi
- Masini: fgets legge e converte qualunque tpo scalare, in base al formato che viene passato alla funzione. Può anche leggere più dati dalla stessa riga, convetendoli comunque opportunamente. gets/fgets invece legge una riga di testo, senza fare alcuna conversione.
- Daniele TIZZI
- sssasssalve
- Stefano Salvi
- Branchini; .... OPPSSS hai ragione....
- Alessia BULKU
- grazie prof
- Stefano Salvi
- Ragazzi, prendete nota: "unsigned char" range da 0 a 255!
- Daniele TIZZI
- ok
- Stefano Salvi
- 4ITel, come siete messi? Posso passare alla 4IIn che preme alla porta, o avete altre domande (anche tenendo conto del ritardo iniziale)?
- Ok, chiudo la chat di 4ITel e apro quella di 4IIn
- Mattia MASINI
- io non ho altre domande, grazie
|