Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
int pelintamanoclsizeofcinti
permettediallocarememoria suoheap
nonpuòessere ausata
p daaltri
HEAP
free p liberarel'areadimemoria
peraltri utilizzi
Int f=malloc(sizeof(int));
Int* f=(*int)malloc(sizeof(int));
Free(f);
Int main(){
while(1){
Void *p = malloc(128);
Ls
./nome (esegue)
Malloc restituisce void* —> noi vogliamo in double (no dereferenziare puntatore void, un problema —> prima di
malloc mettiamo (double*)
Per i double
V —> 0x00
V —> 0x00
Se lo facevamo nell’int
V —> 0x00
232
Int n=5;
Double v[n];
Così non funziona —> posso farlo con le costanti ma non con le variabili
Nei compilatori più recenti si può fare ma brutto, non in tutti i compilatori —> allocato nello stack
Può essere utile allungare o accorciare un vettore —> mettere array di una certa dimensione, quando è pieno lo
allungo, non posso farlo lunghissimo all’inizio perché occupa un sacco di memoria
Le cose che c’erano prima devono rimanere lì —> posso sia allungare che accorciare la dimensione del vettore
A priori l’indirizzo può non essere sempre lo stesso —> se c’è spazio lo allunga lì, se non c’è copia tutto e lo
sposta da un’altra parte dove ha spazio
Per allungare la memoria la raddoppio —> meno volte la allungo + è e ciente la funzione
DENTRO ALLA STACK = memoria, ci sono gli indirizzi, le variabili locali e gli indirizzi di ritorno per le funzioni
gcc -g -fno-stack-protector
—>
1) CHAR
char str[]=“hello”;
Cout<<(void*)str; —> stampa l’inidirizzo del primo elemento (trasformo str in un vettore void), questa
trasformazione vale solo per i vettori di caratteri
2) INT
Int arr[]={8,9,10};
Una cella di memoria ha un indirizzo di memoria, dentro a una cella c’è un indirizzo (tutti gli esadecimali sono
numeri), una cella pesa un byte
X/2x bu er —> mostra i contenuti del primo e del secondo (0 e 1) del vettore bu er
Vado avanti così e prima o poi viene fuori un contenuto, che è l’indirizzo di ritorno alla funzione (l’indirizzo in
questo caso è il contenuto)
Adesso gli mettiamo dentro al posto del contenuto dove c’era l’indirizzo di ritorno alla funzione, gli metto dentro
l’indirizzo della funzione hackerata —> nel cout c’è YOU’VE BEEN HACKED e dopo si bugga ma intanto si è
crashato e gli hacker sono felici
Bu er[16]=0x49;
OPERATORE NEW stessa roba di malloc —> creava un puntatore a della memoria che decido io —> new è ugual
ma è scritto più easy
puntaannua
agthon
nuuptr
ARRAYDINAMICO
Fare unvettorecheauocalamemoriasumaneap quandoeliminoil vettorenon siliberainautomaticoanche laheap
eousoperaccederedentroeadasse
I
ifistrip sereni
returnfalse
returnisparinaramelstroptera
intsumcintn ifcn.ca
return n
returnntsumcn.es
Prodottocomesommaripetuta
intmoet
sumcintn.intm iflm.ca
casobase
return
returnn'moetsumcn.mn
Funzionericorsivaperex.EE
1
arcintneaninitersin resueteresuettuxencaenomenomani
genoma
Playeristringying
private this name x thisnamename
stringname
int pts g
public su
piayercstring.int stringplayer get.namec const thisptspts
stringgetnameliconst returnname
intgetpesciconst
voidsetnamelstringi mainly
via setpiscina ser get player pesupermario 71
returnpts
playerEreditadaplayer superpiayernatparametricoltre a quei aiplayer
super
classsuperplayer publicplayer
arrivate
Charsuperskiel
audio listadiinizializzazione
superplayeristringname intptscharsuperskiel playernamepesi
this superskile superskill
aplayerfeipassassioper farepassaggioperriferimento
anche
valorepotrei
ad
contap.get.namelicenal
siscende
coutccp.get.pt
contapget_superskieeckenae
nemain Il
player pisupermario 7
contap.get.namec ca siscende
p.get.pt
superplayersplienisi 8,1k
contap.get.namec ca pgetpiscia capget_superskiellscende
api
public
trucastringseriannumberacuolemaxecadk
tendere
ladevo this seriannumoer serialnumber
astratta nocreare this max load maxload
vehicles
game
driveebrakenella
classefiglia
senonchiedemanco
funzionericorsivainfinitae faanocaz.aminfinito voidFi
doubletv new
doublenon
returnFei
funzionechesommaelementoperelemento int fintiv1intera
intsa intxv
newintcsat.ladimensionelamettodopo
forcintegissa itt
Li vai vali
int Fintan
dielementiconsecutiviprimadiun 1 if ven
returna
ma
avocaredinamica
ricorsione
progroggetti