Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hvordan gjøre Dynamic Storage Tildeling i C
    I mange tilfeller bestemmer brukeren på fly om et program vil behandle en rekke 10 elementer eller 10000 . Fordi matrisen størrelse er ukjent på forhånd , må du sette av minne og slipp den under kjøring av programmet . Dette minnehåndtering under kjøring er kjent i informatikk som dynamisk minne allokering . Denne artikkelen fokuserer på funksjonene dedikert til dynamisk minne allokering i C. Du trenger
    Integrated Development Environment med C + + Compiler Reserver på C-programmering
    Vis flere instruksjoner
    1

    Inkluder biblioteket filen med standard bibliotek definisjoner . Dette er " stdlib.h "-filen og det inkluderer blant andre viktige C -funksjoner , alle funksjoner som utfører dynamisk minne allokering . For å inkludere dette biblioteket filen i programmet , sett inn følgende linje på toppen av din kilde /header -fil
    Eksempel : .
    # Include
    2

    Bestem hva du vil gjøre . Deretter plukke funksjonen fra følgende trinn som best passer til minne - allokering handlingen du vil utføre.
    3

    Bruk malloc ( ) for et minne blokk med kjent størrelse . " Malloc " tildeler " size" bytes og returnerer en peker til begynnelsen av blokken
    Prototype : en void * malloc ( size_t størrelse);
    Eksempel : .
    Int i ;
    røye * buf ; printf ("Skriv strenglengde : ");
    scanf ( "% d" , og i) ;
    buf = ( char * ) malloc (i +1) ;
    if ( NULL == BUF) exit ( 1 ) ; Twitter //etc
    4

    Ansett calloc ( ) for en rekke elementer der hvert element har en størrelse på mer enn en byte . " Calloc " tildeler en mengde minne for " num " elementer hvert element være " size" Byte . Den returnerer en peker til begynnelsen av blokken
    Prototype : en void * calloc ( size_t num , size_t størrelse);

    Eksempel : .
    Int i , n;
    int * Parr ;
    printf ("Skriv inn antall heltall : ");
    scanf ( "% d" , og i) ;
    n = sizeof ( int ) ;
    Parr = ( int * ) calloc (i, n ) ;
    if ( NULL == Parr ) exit ( 1 ) ; Twitter //etc
    5

    utnytte realloc () for å endre størrelsen på et minne blokk . " RealLOC " utvider eller reduserer minnet blokk med " size" byte som " ptr " pekte på
    Prototype : en oid * realloc (void * ptr , size_t størrelse);
    Eksempel : .
    Int num1 , num2 ;
    int * arr = NULL ;
    trenger {
    printf ("Skriv inn et positivt heltall : ");
    scanf ( "% d" , & num1 ) ;
    while ( 1 > num1 ) ;
    arr = ( int * ) calloc ( num1 , sizeof ( int ));
    if ( NULL == arr ) exit ( 1 ) ;
    do {
    printf ( " skriv inn et annet positivt heltall : ");
    scanf ( "% d " , & num2 ) ;
    mens 1 ( > num2 ) ;
    arr = ( int * ) realloc (arr , num2 * sizeof ( int ) ) ;
    if ( NULL == arr ) exit ( 1 ) ; Twitter //etc
    6

    Slipp en blokk med minne som er tildelt i trinn 3 til 5 ved å bruke gratis ( ) . "Free" frigjør minne blokk som starter på minneområde som " ptr " pekte på
    Prototype : en ugyldig gratis (void * ptr ) ;
    Eksempel : .
    Int * buf ;
    buf = ( int * ) malloc ( 100 * sizeof ( int ));
    gratis ( BUF) ; Twitter //etc

    früher :

     Weiter:
      Relatert Artike
    ·C + + Fibonacci Nummer Funksjon 
    ·Hvordan initialisert variabler i C 
    ·Slik fjerner SQLite i C 
    ·Hvordan bruke Stdlib.h 
    ·Hvordan beregne en Memory Address 
    ·Hvor å Fastsette Visual C + + Runtime Library 
    ·Hvordan Samlet Vektorfunksjoner 
    ·Visual C Prosjekter 
    ·Hovedhensikten med Header filer 
    ·Holografisk Definisjon 
      Anbefalte artikler
    ·Understreng metode i Java 
    ·Hvordan Kill langvarige spørringer i MySQL 
    ·Slik fjerner den første bokstaven i en streng i PHP 
    ·Hvordan få et heltall Fra bytte ut denne 
    ·Hvordan Fullscreen en applet 
    ·Slik installerer Android 2.3 Bruk SDK 
    ·Hvordan lage en Pivot i VBA 
    ·Hvordan bygge ActiveX-kontroller 
    ·Slik viser data i en DataGridView 
    ·Kan du drepe en tråd uten å drepe prosessen 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/