In de basis C + + programmeren , variabelen en arrays worden verklaard door de programmeur direct in de code . Echter , bij het bouwen van datastructuren zoals dynamisch resizen arrays , moet de programmeur leren om dynamisch geheugen toewijzen tijdens de uitvoering van de code . Arrays deze wijze toegewezen een aantal voordelen , zoals niet - constante lengte bij verklaring . De programmeur kan arrays van scalaire data types en gebruikers gecreëerde klassen identiek toewijzen . Het gebruik van pointers en zoekwoorden ingebouwd in de standaard bibliotheek , C + + maakt het toewijzen van geheugen en verwijdering ongecompliceerd . Wat je nodig hebt Text Editor C /C + + Compiler ( zoals Microsoft Visual Studio of GCC ) Toon Meer Aanwijzingen 1 Maak een pointer van de gegevens typt u de array zal bevatten . Bijvoorbeeld , om dynamisch een array van integers , moet een integer pointer bestaan om te verwijzen naar de array : int * arr_ptr ; De wijzer " arr_ptr " zal nu toestaan dat een programmeur om te verwijzen diepe geheugen tijdens de uitvoering. kopen van 2 Gebruik de aanwijzer om geheugen toe te wijzen . De " nieuwe " keyword , die specifiek is voor de C + + -bibliotheken ( en niet verkrijgbaar in standaard C ) beweert geheugen tijdens de uitvoering voor het gebruik van de roeping wijzer : arr_ptr = new int [ 6 ] ; Hier , de " nieuwe " keyword pakt een blok van zes integer - en kleinbedrijf secties van het geheugen . Echter , in tegenstelling tot arrays gedeclareerd voordat het uitvoeren, kunnen dynamische arrays worden verklaard met variabele ingang : int i = 6 ; arr_ptr = new int [ i ] ; kan de programmeur arrays die resize gebaseerd kan op behoefte in plaats van vooraf bepaalde ruimte aanwijzing te creëren . 3 Wijs een reeks van door gebruikers gecreëerde data types . Naar aanleiding van C + + toewijzingsprocedure van het geheugen , de programmeur kan arrays van datatypes gedeclareerd in aparte klassen te maken: int i = 5 ; newClass * class_ptr ; class_ptr = new newClass [ i ] ; . de aanwijzer " class_ptr " zal een variabele van de " newClass " data type , hoogstwaarschijnlijk gedefinieerd in een beschrijving van de klasse in een ander bestand verwijzen 4 Verwijder de array. Als een array niet meer nodig is ( of is gekopieerd naar een andere array , mogelijk tijdens een Heraanpassen ) de programmeur moet ervoor zorgen om het te verwijderen . Toegewezen geheugen dat niet wordt verwijderd , maar niet langer verwezen , kan nemen kostbare geheugen en , na verloop van tijd , want wat bekend staat als een geheugenlek int i = 5 ; . NewClass * class_ptr ; class_ptr = new newClass [ i ] ; delete class_ptr [ ] ; Nu , de array waarnaar wordt verwezen door " class_ptr 'wordt verwijderd , en het geheugen vrijgemaakt voor andere toepassingen .
|