LA NUOVA GERUSALEMME
Qui si costruisce la NUOVA GERUSALEMME grazie al SECONDO TESTIMONE e UNTO, GESU' vi aveva avvisati del mio arrivo ovvero l'arrivo del FIGLIO dell'UOMO, Gesù stesso ha detto che non lo vedete mai più da Giovanni 16,10 "LA GIUSTIZIA" da cui leggiamo ( 10La giustizia sta dalla mia parte, perché torno al Padre e non mi vedrete più.) Lui stesso manda lo Spirito Santo che è il VERO Figlio dell' Uomo . Il vero Figlio dell' Uomo è descritto in Apocalisse 1, 12 ecc.. Io uso la Bibbia Interconfessionale, diversamente cito altri testi. >>> Pace e Bene dal Figlio dell'Uomo <<<
 
Pagina precedente | 1 | Pagina successiva

14) Ancora puntatori, typedef, var. automatiche e statiche, malloc, free

Ultimo Aggiornamento: 23/05/2016 17:04
Autore
Vota | Stampa | Notifica email    
OFFLINE
Post: 257
Post: 246
Registrato il: 02/03/2016
Registrato il: 03/03/2016
Sesso: Maschile
23/05/2016 17:04
 
Quota

Parliamo di Malloc , delle variabili statiche e automatiche , parliamo di puntatori


Parliamo ancora del puntatore perché dopo i grandi dati che immagazziniamo grazie i record che sono le strutture che abbiamo visto nel capitolo precedente, ci può essere d’ aiuto i puntatori e la funzione malloc non per ripetermi rivediamo i puntatori in breve il puntatore si costruisce come le variabili ma deve avere l’ asterisco (*) prima del suo nome ecco la sua sintassi (p=
puntatore)  : 



tipo_elemento *nome_puntatore ;      int *p;

abbiamo creato il puntatore p, ora dobbiamo dargli la vera
variabile che deve leggere logicamente deve essere dello stesso tipo intera nel nostro caso per assegnare una variabile al nostro puntatore  p  basta inserire la  e-commerciale (&) prima della variabile  (v= variabile):

p= &v;  

abbiamo
assegnato al puntatore p la variabile se io scrivo *p = 12; , ecco che la variabile v
prende il valore di 12 perché come si era detto in precedenza, (nel capitolo 12 dei puntatori)  il puntatore legge l’ indirizzo esatto di dove risiede la variabile dentro il disco nostro caso la variabile v , questo indirizzo lo legge grazie all’ operatore dell’ indirizzo & , stesso & che usiamo con la funzione scanf proprio per dargli un indirizzo di memoria  e come detto il puntatore *p 
è lo specchio o alias di questo indirizzo , pertanto possiamo operare sulla variabile v direttamente o indirettamente tramite il suo puntatore p  un esempio, inserisco il tutto su una riga per comodità testuale del forum  se abbiamo :

int  a = 8, v, *p ;    p = &v;    *p = 2;      *p = *p * a;  // il risultato del printf è : 16  e 16 


printf("puntatore =[%d]  variabile =[%d]\nByMpt-Zorobabele\n ", *p, v);



Nel capitolo 13 abbiamo parlato di typedef che serve per dichiarare variabili e tipi dati non primitivi , i tipi primitivi sono le semplici variabili …   



Già l’ array e tutto quello che possiamo costruire con  typedef come le strutture struct e le unioni union questi sono tipi dati non primitivi, con typedef  possiamo creare anche nuovi puntatori la soluzione è la stessa che avevamo visto che si divide in 2 parti parte 1 la vera dichiarazione , parte 2 il cambio del nome o dei nomi se dobbiamo creare più variabili uguali  sintassi per i puntatori:


typedef   tipo_elemento  *nome_elemento;     nome_elemento  nuovo_nome; 

esempio :


 typedef   int *puntatore;        puntatore   p;    



Ora il nostro nuovo puntatore p   è operabile rivediamo il programmino di prima ma ora usiamo il nuovo dato p del nuovo puntatore di typedef come vedete cambia solo la dichiarazione del puntatore :

typedef int *puntatore;      puntatore p;    int  a = 8, v;    p = &v;   *p = 2;    *p = *p * a;


printf("puntatore =[%d]  variabile =[%d]\nByMpt-Zorobabele\n ", *p, v); 



Fino ad ora abbiamo visto solo le variabili automatiche il suo tempo di vita di queste variabili  è
effettuato automaticamente dal sistema centrale  se sono inserite prima del main  sono globali sotto il main sono locali, se sono dentro le varie funzioni o blocchi {} sono solo locali per
quelle funzioni  blocchi quando si esce dalla funzione o blocco quella variabile viene cancellata 



Ora parliamo delle  variabili   dinamiche ,  queste variabili siamo noi che le allochiamo
con malloc e le de allochiamo con free  da dentro la memoria centrale  chiamata heap ( heap =mucchio) , queste variabili non hanno un identificatore o nome ma possono essere attribuite per mezzo del loro indirizzo attraverso i puntatori , questi comandi malloc e free sono
usabili tramite la libreria che dobbiamo inserire con #include<stdlib.h> la stessa libreria
che riconosce il comando system , la sintassi di malloc  (memory allocation ) [ p=puntatore] :



nome_puntatore = (tipo_puntatore *) malloc (sizeof (tipo_puntatore));



dove nome_puntatore è il nome p, tipo_puntatore è il tipo della variabile puntata int,double,float ecc… sizeof(t_p) calcola il numero di bit o byte che occupa il  tipo puntatore  se è int  occupa 2 byte, un float o int long 4 , un double 8  byte vediamo un esempio di allocazione di memoria su variabili primitive  vedi il file  prova 2 allegato dentro il forum  



http://im4.freeforumzone.it/up/49/24/944423184.txt  



Ciao grazie  ByMpt-Zorobabele 

Di questo testo dalla prefazione fino all’ 14°
capitolo scritto,  ho creato un testo PDF da scaricare lo trovate insieme dove rimane l’ elenco delle foto e ogni volta sarà aggiornato con i nuovi testi

http://www.freeforumzone.com/d/11266858/Elenco-figure-dei-comandi-della-programmazione-C-TESTO-PDF/discussione.aspx


Vota: 15MediaObject1,00111
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi

Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Crea forum gratis, gestisci la tua comunità! Iscriviti a FreeForumZone
FreeForumZone [v.6.1] - Leggendo la pagina si accettano regolamento e privacy
Tutti gli orari sono GMT+01:00. Adesso sono le 23:17. Versione: Stampabile | Mobile
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com