I grundlæggende C + + programmering, variabler og arrays er anmeldt af programmøren direkte i koden. Men når man bygger datastrukturer såsom dynamisk resizing arrays , skal programmøren lære at dynamisk allokere hukommelse under kode. Arrays tildelt på denne måde har et par fordele, såsom ikke- konstant længde på erklæring. Programmøren kan allokere arrays af skalar datatyper og brugeroprettede klasser ens. Brug pointers og søgeord indbygget i standard biblioteket , C + + gør hukommelse tildeling og sletning ligetil. Ting du skal
Text Editor
C /C + + Compiler ( Såsom Microsoft Visual Studio eller GCC)
Vis Flere Instruktioner
1
Opret en pointer af data skrive array vil indeholde . For eksempel, dynamisk skabe en række heltal, skal et heltal pointer eksisterer for at referere array : Hej
int * arr_ptr ,
pointer " arr_ptr " vil nu give en programmør til at referere dyb hukommelsen under udførelsen.
2
Brug markøren til at allokere hukommelse . Den "nye " søgeord , der er specifik for C + + biblioteker ( og ikke er tilgængelige i standard C ) hævder hukommelse under udførelsen for brug af kald pointer : Hej
arr_ptr = new int [6] ;
< p> Her den "nye " søgeord griber en blok af seks heltal mellemstore sektioner af hukommelsen. Men i modsætning til arrays erklæret før kørslen, kan dynamiske arrays erklæres med variabel input : Hej
int i = 6;
arr_ptr = new int [i] ;
gør det muligt for programmøren at skabe arrays, der kan ændre størrelsen på grundlag af behov snarere end forudbestemt plads betegnelse.
3
Allokere en vifte af bruger - skabte datatyper. Efter C + + memory tildelingsprocedure , programmøren kan oprette arrays af datatyper erklæret i separate klasser : Hej
int i = 5;
newclass * class_ptr ,
class_ptr = new newclass [i ] .
pointer " class_ptr " vil henvise til en variabel af " newclass " datatype , sandsynligvis er defineret i en klasse beskrivelse i en anden fil
4
Slet array. Når et array er ikke længere nødvendigt ( eller er blevet kopieret til et andet array, eventuelt under en resizing drift) programmøren bør sørge for at slette det. Allokerede hukommelse , der ikke er slettet , men ikke længere refereres til, kan tage op værdifuld hukommelse og med tiden forårsage , hvad der er kendt som en hukommelsesfejl
int i = 5; .
Newclass * class_ptr ;
class_ptr = new newclass [i] ;
delete class_ptr []
nu vil array refereres af " class_ptr " skal slettes, og hukommelsen befriet til andre formål.