Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur dynamiskt allokera en array med klass i C + +

    I grundläggande C + + programmering , variabler och arrayer deklareras av programmeraren direkt i koden . Men när man bygger datastrukturer som dynamiskt storleksändring matriser , måste programmeraren lära sig att dynamiskt allokera minne under exekvering av kod . Arrays tilldelats på detta sätt har några fördelar , såsom icke - konstant längd vid deklarationen . Programmeraren kan fördela arrayer av skalära datatyper och användarskapade klasser identiskt . Använda pekare och nyckelord inbyggda i standarden biblioteket , C + + gör minnesallokering och radering okomplicerad . Saker du behöver
    Text Redaktör C /C + + kompilator ( t.ex. Microsoft Visual Studio eller GCC )
    Visa fler instruktioner
    1

    Skapa en pekare av datatypvärdet arrayen kommer att innehålla . Till exempel , dynamiskt skapa en array av heltal , måste ett heltal pekare finns att referera arrayen :

    int * arr_ptr ,

    pekare " arr_ptr " kommer nu låta en programmerare att referera djup minne under körning .
    2

    Använd pekaren för att allokera minne . Den " nya " nyckelordet , som är specifik för C + + -bibliotek ( och inte tillgängliga i standard C ) hävdar minnet under exekvering för användning av kallelse pekaren :

    arr_ptr = new int [ 6 ] ;

    Här griper den " nya " nyckelordet ett block av sex heltal stora delar av minnet . Men till skillnad arrayer deklareras innan körning , kan dynamiska matriser deklareras med variabel input :

    int i = 6 ;

    arr_ptr = new int [ i] ;

    tillåter programmeraren att skapa arrayer som kan ändra storlek baseras på behov snarare än förutbestämt utrymme beteckning .
    3

    Tilldela en uppsättning användarskapade datatyper . Efter C + + minnesallokering förfarande , programmeraren kan skapa arrayer av datatyper deklareras i separata klasser :

    int i = 5;

    newClass * class_ptr ,

    class_ptr = ny newClass [ i] ; .

    pekare " class_ptr " kommer att referera till en variabel av " newClass " datatyp , troligen definierad i en klass beskrivning i en annan fil
    4

    Radera array. När en grupp inte längre behövs ( eller har kopierats till en annan array , eventuellt under en storleksändring ) programmeraren bör se till att ta bort det . Allokerat minne som inte raderas , men inte längre refereras , kan ta upp värdefull minne och , med tiden , orsakar vad som kallas en minnesläcka

    int i = 5; .

    NewClass * class_ptr ;

    class_ptr = ny newClass [ i] ;

    delete class_ptr [ ] ;

    nu kommer arrayen refereras av " class_ptr " utgå , och minnet frigörs för andra ändamål .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man flyttar ett objekt genom att dra i XCode
    ·Hur man skriver databasapplikationer med C #
    ·Hur man läser Hex Number C + +
    ·Hur man skapar Pyc filen för att köra på webben
    ·Hur man skriver en C + + -program i multiplikationstabe…
    ·Hur man lär STL biblioteket
    ·Hur man lär sig C med Xcode
    ·Hur man öppnar upp MS - DOS
    ·Hur Omvänd en kö i C + +
    ·Hur man gör ett pong spel i C + +
    Utvalda artiklarna
    ·Hur hitta andra förekomster av en klass i C + +
    ·Hur man programmerar PHP med MacBook
    ·Hur man gör en loop i Python
    ·Hur får man Python att få en bildvisning
    ·Hur man löser ekvationer i Visual Basic NET
    ·En förklaring av INT , NUM1 , num2 och num3 i Java -ko…
    ·Hur du installerar ett Zend Layout i NetBeans
    ·Hur man skapar en fil från en textruta i VB6
    ·Hur man beräknar tidsskillnaden PHP
    ·Konvertera en tupel i en lista i Python
    Copyright © Dator Kunskap http://www.dator.xyz