Questa guida vi permetterà di avere qualche conoscenza in più nell'ambito della memoria, viene affrontata la memoria dinamica, che poi è la memoria che molti di voi trattate per scrivere i vostri cheats per giochi online. Può essere anche un punto d'inizio per chi volesse iniziare a programmare cheats in C.

Breve introduzione, divisione della memoria
Il C è un linguaggio molto flessibile, a contrario di altri linguaggi come il C++ o il Java per esempio permette la sola quantità necessaria di memoria alle variabili. La memoria è divisa in memoria dinamica e memoria statica:

  • Statica: Sappiamo e identifichiamo noi ciò che viene allocato in memoria. Viene detta Stock;
  • Dinamica: In memoria vengono allocati valori creati durante l'esecuzione del programma. Detta anche Heap.




Memoria dinamica: Heap
Come precedentemente detto, lo Heap è una porzione di memoria dedicato ad un singolo processo, essa non esiste finchè non si lancia un programma; Bisogna sempre dichiarare i blocchi di memoria tramite un'apposita funzione che si aprano che si chiudano. A questa memoria si può accedere solo tramite pointers o pointers di diversi livelli allocati nello Stock.
Questa memoria è gestita dal sistema operativo con paragrafi di 16 ai 32 o 64 bit, l'uso continuo di allocazione e cancellazione di memoria (heap, quindi quella dinamica) porta a un peggioramento delle prestazioni del computer.
Le funzioni principali dedicate alla memoria dinamica sono:

  • malloc() utilizzata per l'allocazione di memoria;
  • calloc() utilizzata per l'allocazione di memoria;
  • free() elimina la memoria allocata;
  • realloc() modifica lo spazio di memoria già allocato.


Per utilizzare queste funzioni bisogna includere la libreria malloc.h, ci sono però anche altre funzioni utili per il programmatore (per queste funzioni che sto per elencare è necessario l'utilizzo della libreria stddef.h):

  • sizeof, utilizzata per leggere il valore di una variabile o di un qualsiasi altro dato;
  • typedef, utilizzata per leggere i valori come sizeof, ma solo valori di tipo intero.






Per maggiori spegazioni ed esempi sulle funzioni clicca sui link: malloc(), calloc(), free(), realloc().
Per maggiori spiegazioni ed esempi sulle funzioni "secondarie" clicca sui link: sizeof(), typedef().






Gestione della memoria in C
[Tutorial] Gestione della memoria in C by WoOrMHaCK is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 Unported License

Based on a work at www.tecnogers.com.