Hoe De Grootte Van Een Array Te Bepalen

Inhoudsopgave:

Hoe De Grootte Van Een Array Te Bepalen
Hoe De Grootte Van Een Array Te Bepalen
Anonim

Arrays zijn een van de meest gebruikte vormen van gegevensopslag tijdens de werking van een programma. Ze stellen u in staat om elementen van hetzelfde type in een geordende volgorde te ordenen en er snel toegang toe te krijgen via index. Heel vaak moet je bij het ontwikkelen van applicaties in krachtige en flexibele programmeertalen die directe geheugentoegang mogelijk maken, zoals C ++, de grootte van de array bepalen.

Hoe de grootte van een array te bepalen
Hoe de grootte van een array te bepalen

Noodzakelijk

C++-compiler

instructies:

Stap 1

Bepaal de grootte van de array tijdens het compileren door deze te berekenen met de operator sizeof. Deze operator retourneert de hoeveelheid geheugen (in bytes) die wordt ingenomen door het argument dat eraan wordt doorgegeven. Het argument kan een variabele of een type-ID zijn. De operator sizeof retourneert de eindige hoeveelheid geheugen die door het object wordt ingenomen tijdens de uitvoering van het programma (rekening houdend met bijvoorbeeld de instellingen voor de uitlijning van de structuurvelden), maar de berekening wordt uitgevoerd in de compilatiefase.

Stap 2

Om de grootte van een array te bepalen met behulp van de operator sizeof, deelt u de volledige grootte door de grootte van één element. Als u bijvoorbeeld de volgende definitie van een array hebt: int aTemp = {10, 20, 0xFFFF, -1, 16}, dan kan de grootte worden berekend als: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

Stap 3

Voor een handiger gebruik van deze methode is het logisch om een macro te definiëren: #define countof (a) (sizeof (a) / sizeof (a [0])) Merk op dat aangezien de waarde van de operator sizeof wordt berekend bij het compileren tijd, op het punt waar de berekening wordt uitgevoerd, moet informatie over het volume van de array en zijn elementen expliciet beschikbaar zijn. Met andere woorden, het is onmogelijk om de parameters van een array van onbekende grootte te bepalen door zijn externe declaratie.

Stap 4

Bepaal de grootte van de array tijdens de uitvoering van het programma, met behulp van het bekende teken van beëindiging. Een van de benaderingen waarmee gegevens kunnen worden opgeslagen en verzonden in de vorm van reeksen van onbepaalde lengte, is het toekennen van een speciale waarde aan een teken dat de voltooiing van een gegevensreeks aangeeft. Single-byte C-stijl tekenreeksen die tekenreeksen zijn, moeten bijvoorbeeld eindigen met de waarde 0, verpakte C-tekenreeksreeksen met variabele lengte hebben een nulterminatie en pointerarrays moeten op nul eindigen.

Stap 5

Om de grootte van een array die op deze manier wordt weergegeven te bepalen, scant u deze element voor element totdat u het afsluitende element vindt. Verhoog de op nul geïnitialiseerde teller tijdens de scan. Of verhoog de waarde van de aanwijzer naar een array-element en bereken na het scannen het verschil tussen de aanwijzers naar het huidige en het eerste element.

Stap 6

Verkrijg de grootte van een dynamische array die wordt vertegenwoordigd door een framework of bibliotheekobject door de methode aan te roepen. Alle klassen die de functionaliteit van dergelijke arrays inkapselen, hebben methoden om het huidige aantal elementen te verkrijgen. De std:: vectorsjabloonklasse van de C ++ standaardbibliotheek heeft bijvoorbeeld een size-methode, de QVector-klasse van het Qt-framework heeft een count-methode en de analoge CArray-klasse van de MFC heeft een GetCount-methode.

Aanbevolen: