Vanlig matrise
En matrise kan opprettes i normalt minne som følger:
char arr [] = 'p', 'q', 'r', 's', 't';For å slette denne matrisen, bare la den gå ut av omfang.
Gratis butikk
En rekke. Et slikt utvalg kan opprettes som følger:
char *ptr = new char [5] 'p', 'q', 'r', 's', 't';Den samme matrisen kan opprettes i C ++ hovedfunksjonen som følger:
char *ptr = new char [5];Merknad om bruken av operatøren, ny, her. PTR er en peker. ARR over er også en peker, men ble nærmet fra en annen vinkel. For å slette denne matrisen, bruk operatøren, slett [] som vist nedenfor. Arrayen i gratis butikk kan ikke slettes ved å la den gå ut av omfang. Så det må slettes med Delete [] -operatøren.
Denne artikkelen illustrerer de forskjellige måtene å slette en matrise som er opprettet på de to måtene.
Artikkelinnhold
- Slette vanlig matrise
- Slette dynamisk opprettet pekerutvalg av gratis butikk
- Konklusjon
Slette vanlig matrise
For å slette et vanlig utvalg, bare la det gå ut av omfang. Selv om hovedfunksjonen () er kapitalfunksjonen til et C ++ -program, er det fortsatt en funksjon. I det følgende programmet opprettes en matrise i et nestet lokalt omfang (blokkering) i C ++ hovedfunksjonen:
#inkludereUtgangen er, q. Det nestede omfanget er blokken til IF-konstruksjonen. Arrayen ble opprettet i denne blokken og brukt i samme blokk ved å skrive ut den andre verdien av matrisen. På slutten av blokken dør array -variabelen. Hvis kommentarindikatoren rett under blokken fjernes, vil ikke programmet bli samlet, vil en feilmelding bli utstedt. Dette vil være fordi matrisen døde på slutten av blokken.
Følgende program, illustrerer en lignende ting, men i en funksjon, kalt FN ().
#inkludereUtgangen er fortsatt, q. Hvis kommentarindikatoren rett under funksjonsblokken er fjernet, vil ikke programmet sammenstille, og en feilmelding vil bli utstedt. Dette vil være fordi matrisen døde på slutten av funksjonsblokken (omfang). Legg også merke til at tildelingen etter erklæring ikke er tillatt i det globale omfanget.
Slette dynamisk opprettet pekerutvalg av gratis butikk
Siden tildeling etter erklæring ikke er tillatt i det globale omfanget, vil matrisen i gratisbutikken bli gjort i et nestet omfang til C ++ hovedfunksjonsblokken som er illustrert nedenfor. Slett [] -operatøren brukes i det nestede omfanget, for å slette matrisen, som følger:
#inkludereUtgangen er en 'q', fra den første cout -uttalelsen. Legg merke til at navnet på matrisen, PTR, som argument (parameter) av slettoperatøren. Arrayen, PTR for gratisbutikken, er erklært, brukt og slettet med "Delete [] ()" -operatøren i samme nestede omfang. Hvis det gis å gå ut av omfanget, uten å "slette [] PTR", ville det egentlig ikke bli slettet fordi det er i gratis butikk. En slik matrise må slettes i omfang. Slette med Delete [] -operatøren må gjøres for den dynamiske matrisen for å frigjøre minne (unngå minnelekkasje).
Følgende program, illustrerer en lignende ting, men i C ++ hovedfunksjonsomfanget:
#inkludereUtgangen er fremdeles, q som den skal, med indeksen. All interessekode er direkte i C ++ hovedfunksjonen. Selv om hovedfunksjonen () er kapitalfunksjonen til et C ++ -program, er det fremdeles en funksjon av funksjonsomfanget eller funksjonsblokken.
Inkludering av bibliotekoverskrift
Som nevnt ovenfor, har ingen biblioteker blitt inkludert for bruk av de nye eller slette operatørene. Imidlertid er de nye og slette operatørene i det nye biblioteket, som implisitt er inkludert. De nye og slette operatørene er av det globale omfanget. Biblioteket kan fremdeles inkluderes som i følgende program for vanlig rekke:
#inkludereProgrammet fungerer uten problemer. Biblioteket kan fremdeles inkluderes, som i følgende program, for dynamisk peker -matrise i gratis butikk:
#inkludereProgrammet fungerer uten problemer. Merk: inkludert den nye overskriften (bibliotek) er ikke obligatorisk.
Konklusjon
For å slette et vanlig utvalg, bare la det gå ut av omfang. For å slette en dynamisk pekerutvalg av gratis butikk, bruk operatøren, slett [] arrayname, i samme omfang. Array slett operatøren, kan ha et sekund og/eller tredje argument. Imidlertid er det diskusjonen en annen gang.