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 >> Computer Programspråk >> Content

    Hur kan vi dynamiskt allokera Array Storlek

    ? Arrayer i datorprogrammering är samlingar eller sekvenser av värden som finns i en enda variabel namn . Dessa datastrukturer tillåter programmerare att representera dataserier eller data listor för olika ändamål , till exempel sortering eller iteration . Men i många programmeringsspråk , till exempel C /C + + , matriser programmerare måste deklarera statiska , oföränderliga fältstorlekar . Genom att använda tekniker minnesallokering på ett språk som C + + , programmeraren kan dynamiskt skapa arrayer eller ens ändra storlek dessa matriser under programkörning . Arrays

    lägre nivå språk som C eller C + + , arrayer är statiska . När deklarerats med en storlek värde , kommer att array upprätthålla alltid den storleken . Kompilatorn allokerar ett block av sammanhängande minne för array . Alla andra funktioner eller variabler som behöver minne placeras efter arrayen. Följaktligen kan matrisen ändras inte i storlek utan att skriva över de data som följer efter den. Så , till exempel , när en programmerare deklarerar en array med tjugo platser kommer att array alltid har tjugo platser , oavsett om de används eller inte , för livet i datastrukturen .
    Minnestilldelning på högen

    för att kringgå denna begränsning kan dock programmerare allokera minne på högen . Normalt variabler och rader deklarerats i ett program eller en funktion placeras på stacken , som i huvudsak representerar korttidsminnet . När livslängden för funktionen arrayen existerar på klar läggs den arrayen utgå. Genom att använda den " nya " nyckelordet , dock kan programmeraren samlar minnet från högen , vilket är långtidsminnet som existerar utanför funktionen som deklarerar arrayen . Dessutom , kan programmeraren använda Heap att deklarera arrayer dynamiskt .
    Dynamiska matriser

    med arrayer , har programmeraren att förklara storleken på arrayen vid deklaration . Denna storlek ska företrädas av ett konstant värde , antingen en konstant variabel eller ett heltal . Men med hjälp av " nya " operatör , kan programmeraren använda vanliga variabler som storlek arrayer , och användaren kan även ange värdet av dessa variabler under körning . Följande exempel visar skillnaden :

    int main ( ) {

    int arr [ 5 ] , //ny array , skall vara dimensionerade med konstant valueint size = 5 ; int * dynamic_array = ny int [ storlek ] ; //storleken på matrisen är dynamiska
    Ändra storlek Arrays

    dessa dynamiska arrayer , kan programmeraren sedan skapa arrayer som kan ändra storlek . Den " vector " klass representerar ett dynamiskt växande eller krympande array som TAKS nytta av dynamiska matriser . Följande exempel visar hur du skapar en enkel array som växer sig större i storlek :

    int main ( ) {

    int * arr = new int [ 5 ] ; int new_size = 10 ;

    arr [ 0 ] = 1 ; arr [ 1 ] = 2 ;

    /* Ändra storlek * /int * arr2 = new int [ new_size ] ;

    arr2 [ 0 ] = arr [ 0 ] ; arr2 [ 1 ] = arr [ 1 ] ,

    delete [ ] arr , arr = arr2 ;

    avkastning 0; }


    Tidigare:

    nästa:
    relaterade artiklar
    ·Skillnaden mellan ett passivt objekt och ett aktivt obj…
    ·Hur man slår ihop kolumner i DataGrid
    ·Hur man skriver ett Live Messenger Script
    ·Hur man använder bitvisa operationer i låg - nivå pr…
    ·Hur man gör det kortaste koden för en oändlig slinga…
    ·Hur man skriver ut en ekvation som en sträng
    ·Introduktion till Pseudokod
    ·Hur göra Miljoner
    ·När vill du använda en If - Then- Else Uttalande Öve…
    ·Hur man lägger in en fördröjning i Shell Script
    Utvalda artiklarna
    ·Hur man skriver en installation Script
    ·Microsoft Visual Database Tools
    ·Hur att bryta sig ur en DIV Utan Absolut positionering
    ·Hur Multiplicera flera heltal i C
    ·User Defined Undantag i Java
    ·Hur Infoga nya tabeller i MySQL med PHP
    ·Hur vill kolla om ett objekt egenskapen finns i JavaScr…
    ·Varför får jag en Javascript Void meddelande
    ·Hur man bygger diagram i Java
    ·Hur man använder Lägg upp Java
    Copyright © Dator Kunskap http://www.dator.xyz