Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Puntatori in C++


Allocazione Dinamica della Memoria

Allocazione Dinamica di Memoria in C++

L'allocazione dinamica di memoria in C++ consente di gestire la memoria manualmente durante l'esecuzione del programma.
Questo significa che puoi creare, modificare e liberare la memoria in modo dinamico.
L'operazione chiave coinvolge l'uso di `new` per allocare la memoria e `delete` per liberarla.


int* puntatoreIntero = new int;  // Allocazione dinamica di un intero
*puntatoreIntero = 42;           // Assegnazione di un valore

// Liberazione della memoria
delete puntatoreIntero;

Utilizzo di `new` e `delete`

  • new Utilizzato per allocare dinamicamente la memoria.
    Restituisce un puntatore al tipo di dato specificato.
  • delete Utilizzato per liberare la memoria precedentemente allocata con `new`.


int* arrayDinamico = new int[10];  // Allocazione dinamica di un array di 10 interi

// Liberazione della memoria
delete[] arrayDinamico;

Utilizzo di Reference

Le reference in C++ offrono un modo sicuro e conveniente per manipolare i dati senza dover lavorare direttamente con i puntatori.


int numero = 10;
int& referenceNumero = numero;  // Dichiarazione di una reference a numero

referenceNumero = 20;  // Modifica il valore di numero attraverso la reference

Parametri di una Funzione nei Puntatori Costanti

Quando si passano puntatori a funzioni, l'uso di puntatori costanti previene la modifica dell'oggetto puntato.


void funzioneEsempio(const int* puntatoreCostante) {
    // *puntatoreCostante = 5;  // Errore, non puoi modificare il valore puntato
}

In questo esempio, `const int*` indica che il dato puntato non può essere modificato all'interno della funzione.