Video: C programmering svenska - 26 - Rekursiv funktion 2024
Statiska arrays fördelas på stapeln, vilket kan begränsa användbarheten. Dynamiska arrays fördelas på högen, vilket innebär att de bara är begränsade av minnesstorleken. Visserligen hittar du några andra skillnader mellan dynamiska och statiska arrays, men det är här, men dynamiska arrays kräver lite mer arbete att använda eftersom du måste hantera minnet själv, de ger också ökad flexibilitet i att arbeta med data.
Mer än troligt kommer du vilja hantera komplexa data när du använder dynamiska arrayer. Exemplet i denna artikel på nätet syftar till att behaga genom att titta på hur du kan använda en dynamisk array med en struktur. Här är ett exempel på koden du kan använda:
#include # include using namespace std; struct anställd {strängnamn; int ålder;}; int main () {Medarbetare * DynArray; DynArray = ny (nonhrow) Anställd [3]; DynArray [0]. Namn = "Harvey"; DynArray [0]. Ålder = 33; DynArray [1]. Namn = "Sally"; DynArray [1]. Ålder = 26; DynArray [2]. Namn = "Jeff"; DynArray [2]. Ålder = 52; cout << "visar array innehållet" << endl; för (int i = 0; i <3; i ++) {cout << "namn:" << dynArray [i]. Namn << "tAge:" << dynArray [i]. Ålder << endl;} Ta bort [] DynArray; returnera 0;}
I det här exemplet börjar koden genom att skapa en Employee struct som innehåller anställdas namn och ålder. Du kan använda någon form av databehållare som önskas - det här råkar bara vara en struktur.
För att skapa en dynamisk array definierar du en pekare till array-variabeln. Denna handling placerar variabeln på högen, snarare än stapeln. Du skapar sedan matrisen, som innehåller tre anställda poster i det här fallet. Koden fyller i data och använder sedan en slinga för att visa resultaten på skärmen. Här är vad du bör se när du kör exemplet.
Visar innehållet i Array-innehållet: Harvey Ålder: 33 Namn: Sally Ålder: 26 Namn: Jeff Ålder: 52
Observera att du får tillgång till de enskilda medlemmarna av Medarbetare genom att öppna det önskade arrayindexet och sedan använda punktsyntax för att ange medlemsnamnet. Det är viktigt att komma ihåg att den dynamiska gruppen fungerar som vilken som helst annan matris genom att du får tillgång till ett index för att få en specifik post.
Det är viktigt att använda radera [] för att frigöra minnet som används av DynArray. Annars kommer din ansökan att ha en minnesläcka som så småningom påverkar systemets prestanda eller åtminstone att det gör roliga saker. Eftersom våra system redan är roliga skådespelare, är det nog en bra idé att se till att din ansökan inte "bidrar till problemet.