Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Allocazione Dinamica di Puntatori a Puntatore | Allocazione Dinamica della Memoria
Puntatori e Riferimenti in C++
Sezione 4. Capitolo 4
single

single

bookAllocazione Dinamica di Puntatori a Puntatore

Scorri per mostrare il menu

Un puntatore a puntatore, indicato come doppio puntatore (**).

Si tratta di un puntatore che contiene l'indirizzo di memoria di un altro puntatore. In termini semplici, è una variabile il cui valore è l'indirizzo di un altro puntatore. Questo concetto può sembrare complesso inizialmente, ma offre un meccanismo potente per gestire l'allocazione dinamica avanzata della memoria.

Sintassi

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Address stored in ptr2 (address of ptr1): " << ptr2 << std::endl; std::cout << "Address stored in ptr1 (address of x): " << *ptr2 << std::endl; std::cout << "Value of x: " << **ptr2 << std::endl; }
  • ptr1: è un puntatore a un intero (int*);
  • ptr2: è un doppio puntatore a un intero (int**).

Allocazione dinamica di un array bidimensionale

Per creare un array bidimensionale in modo dinamico (durante l'esecuzione), è necessario utilizzare un puntatore a puntatore per le righe.

Successivamente, inizializzare ogni riga con un array dinamico (come nel capitolo precedente)

Compito

Scorri per iniziare a programmare

Immagina di lavorare con un'applicazione di foglio di calcolo in cui è necessario creare dinamicamente una tabella di numeri.

In questo esercizio, lavorerai con array bidimensionali dinamici e praticherai sia l'allocazione che la deallocazione della memoria.

  1. All'interno della funzione createAndPrint2DArray, alloca dinamicamente un array 2D di interi con il numero di righe e colonne fornito.
  2. Riempi l'array con valori calcolati come row * columns + column, in modo che ogni elemento sia unico e dipenda dalla sua posizione.
  3. Stampa l'array sulla console in formato tabellare.
  4. Rilascia correttamente tutta la memoria allocata dinamicamente utilizzando delete[] per ogni riga e poi per l'array di puntatori stesso.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 4
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt