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 man gör Dynamic Storage Tilldelning C

    I många fall avgör användaren i farten om ett program kommer att behandla en rad av 10 element eller 10.000 . Eftersom array storlek är okänd i förväg , måste du avsätta minne och släppa den under programkörning . Denna minneshantering under körning är känd i datavetenskap som dynamisk minneshantering . Denna artikel fokuserar på de funktioner avsedda för dynamisk minnesallokering i C. Du behöver
    Integrated Development Environment med C + + kompilator
    bok om C -programmering
    Visa fler instruktioner
    1

    Inkludera biblioteket filen med standardbiblioteket definitioner . Detta är den " stdlib.h " filen och den innehåller bland annat viktiga C- funktioner , alla funktioner som utför dynamisk minnesallokering . För att inkludera detta bibliotek filen i programmet , infoga följande rad på toppen av din källa /sidhuvudfilen
    Exempel : .
    # Include Sida 2

    Bestäm vad du vill göra . Sedan välja funktionen från följande steg som bäst passar till minnet - fördelning åtgärd du vill utföra . Efter ett minne block av känd storlek
    3

    Använd malloc ( ) . " Malloc " allokerar "storlek " bitgrupper och returnerar en pekare till början av blocket
    Prototype :
    void * malloc ( size_t storlek) ;
    Exempel: .
    Int i;
    char * buf ; printf ( " Ange strängen längd : " ) ;
    scanf ( " % d " , & i) ;
    buf = ( char * ) malloc ( i +1 ) ,
    if ( NULL == buf ) exit ( 1 ) , kommenterar: //etc
    4

    Anställ calloc ( ) för en samling av element där varje element har en storlek på mer än ett byte . " Calloc " allokerar en bit av minnet för " num " element varje element är "storlek" bytes i längd . Den returnerar en pekare till början av blocket
    Prototype :
    void * calloc ( size_t num, size_t storlek) ;

    Exempel: .
    Int i , n;
    int * Parr ,
    printf ( " Ange antal heltal : " ) ;
    scanf ( " % d " , & I ) ,
    n = sizeof ( int ) ;
    Parr = ( int * ) calloc ( i, n ) ;
    if ( NULL == Parr ) exit ( 1 ) , kommenterar: //etc
    5

    Utnyttja realloc ( ) för att ändra storlek på ett minnesblock . " Realloc " expanderar eller minskar minnet block av "storlek" bytes som " PTR " pekade
    Förebild:
    oid * realloc ( void * ptr , size_t storlek ) ,
    Exempel : .
    Int num1 , num2 ,
    int * arr = null;
    do {
    printf ( " Ange ett positivt heltal : " ) ;
    scanf ( " % d " , & num1 ) ,
    tag ( 1 > num1 ) ,
    arr = ( int * ) calloc ( num1 , sizeof ( int ) ) ;
    if ( NULL == arr ) exit ( 1 ) ;
    do {
    printf ( " Ange ett positivt heltal : " ) ;
    scanf ( " % d " , & num2 ) ,
    medan ( 1 > num2 ) ,
    arr = ( int * ) realloc ( arr , num2 * sizeof ( int ) ) ;
    if ( NULL == arr ) exit ( 1 ) , kommenterar: //etc
    6

    Släpp ett block av minne tilldelas i steg 3 till 5 genom att använda gratis ( ) . " Gratis " frigör minnet blocket som börjar på minnesplats som " PTR " pekade på
    Förebild:
    void free ( void * ptr ) ,
    Exempel : .
    Int * buf ;
    buf = ( int * ) malloc ( 100 * sizeof ( int ) ) ;
    gratis ( buf ) , kommenterar: //etc

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur du kontrollerar att ett objekt tas bort i C + +
    ·Hur man läser en CBZ Arkiv
    ·Hur Teach Yourself Windows CE programmering i 24 timmar…
    ·Hur man skriver en testplan
    ·Hur man läser en String i C
    ·Lägga Två stora heltal i C + +
    ·Hur man använder Ogre Vector3 Operator
    ·Hur avsluta program i C
    ·Hur man bygger en CPP körbar på Windows
    ·Hur öppna flera filer för ingång och utgång i C + +…
    Utvalda artiklarna
    ·Konvertera Dll till ActiveX
    ·Hur man gör en textruta i XNA
    ·Hur man designar en mall för Joomla
    ·Hur man använder VB6 MonthView kontroll
    ·Hur man byter tecken med XPath
    ·Hur man skriver ut Perl Debugger
    ·C - Sharp Projekt för skolledning
    ·Bygga ett skyltfönster med PHP MySQL
    ·Hur man får måtten på en bild i PHP
    ·Basic Hjälp för Microsoft Visual
    Copyright © Dator Kunskap http://www.dator.xyz