Istituto Tecnico Industriale "Enrico Fermi"

Help On Chat

[Ritorna all'elenco sessioni]

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

[Ritorna all'elenco sessioni]