Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Dynamisk Allokering av Peker til Peker | Dynamisk Minnetildeling
C++-Pekere og Referanser
Seksjon 4. Kapittel 4
single

single

bookDynamisk Allokering av Peker til Peker

Sveip for å vise menyen

En peker til peker, betegnet som dobbel peker (**).

Dette er en peker som inneholder minneadressen til en annen peker. Enkelt sagt er det en variabel hvis verdi er adressen til en annen peker. Dette konseptet kan virke komplisert i starten, men gir en kraftig mekanisme for avansert dynamisk minneallokering.

Syntaks

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: er en peker til et heltall (int*);
  • ptr2: er en dobbeltpeker til et heltall (int**).

Dynamisk allokering av et todimensjonalt array

Hvis du ønsker å opprette et todimensjonalt array dynamisk (under kjøring), må du bruke en peker til en peker for radene.

Deretter initialiserer du hver rad med et dynamisk array (som i forrige kapittel)

Oppgave

Swipe to start coding

Tenk deg at du arbeider med et regnearkprogram hvor du må opprette en tabell med tall dynamisk.

I denne oppgaven skal du arbeide med dynamiske todimensjonale arrayer og øve på både allokering og frigjøring av minne.

  1. Inne i funksjonen createAndPrint2DArray, alloker dynamisk en 2D-array av heltall med gitt antall rader og kolonner.
  2. Fyll arrayen med verdier beregnet som row * columns + column, slik at hvert element er unikt og avhenger av sin posisjon.
  3. Skriv ut arrayen til konsollen i tabellformat.
  4. Frigi korrekt alt dynamisk allokert minne ved å bruke delete[] for hver rad og deretter for selve arrayen av pekere.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt