Come Determinare La Dimensione Di Un Array

Sommario:

Come Determinare La Dimensione Di Un Array
Come Determinare La Dimensione Di Un Array

Video: Come Determinare La Dimensione Di Un Array

Video: Come Determinare La Dimensione Di Un Array
Video: 19 Array. Vettori: es 20 contaElementi 2024, Maggio
Anonim

Gli array sono una delle forme di memorizzazione dei dati più utilizzate nel corso delle operazioni del programma. Consentono di organizzare elementi dello stesso tipo in una sequenza ordinata e di accedervi rapidamente tramite indice. Molto spesso, quando si sviluppano applicazioni in linguaggi di programmazione potenti e flessibili che consentono l'accesso diretto alla memoria, come C++, è necessario determinare la dimensione dell'array.

Come determinare la dimensione di un array
Come determinare la dimensione di un array

Necessario

compilatore C++

Istruzioni

Passo 1

Determinare la dimensione dell'array in fase di compilazione calcolandola utilizzando l'operatore sizeof. Questo operatore restituisce la quantità di memoria (in byte) occupata dall'argomento passato. L'argomento può essere una variabile o un identificatore di tipo. L'operatore sizeof restituisce la quantità finita di memoria occupata dall'oggetto in fase di esecuzione del programma (tenendo conto, ad esempio, delle impostazioni per l'allineamento dei campi della struttura), ma il suo calcolo viene eseguito in fase di compilazione.

Passo 2

Per determinare la dimensione di un array utilizzando l'operatore sizeof, dividere la sua intera dimensione per la dimensione di un elemento. Ad esempio, se hai la seguente definizione di un array: int aTemp = {10, 20, 0xFFFF, -1, 16}, la sua dimensione può essere calcolata come: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

Passaggio 3

Per un uso più conveniente di questo metodo, ha senso definire una macro: #define countof (a) (sizeof (a) / sizeof (a [0])) Si noti che poiché il valore dell'operatore sizeof viene calcolato al momento della compilazione tempo, nel punto in cui viene eseguito il calcolo, le informazioni sul volume dell'array e dei suoi elementi devono essere disponibili in modo esplicito. In altre parole, è impossibile determinare i parametri di un array di dimensioni sconosciute tramite la sua dichiarazione extern.

Passaggio 4

Determinare la dimensione dell'array durante l'esecuzione del programma, utilizzando il segno noto della sua terminazione. Uno degli approcci che consente di memorizzare e trasmettere dati sotto forma di array di lunghezza indefinita consiste nell'allocare un valore speciale per un segno che indica il completamento di una sequenza di dati. Ad esempio, le stringhe di tipo C a un byte che sono matrici di caratteri devono terminare con un valore 0, le matrici di stringhe C di lunghezza variabile compressi hanno terminazione zero e le matrici di puntatori devono terminare null.

Passaggio 5

Per determinare la dimensione di un array rappresentato in questo modo, scansionarlo elemento per elemento fino a trovare l'elemento terminale. Incrementa il contatore inizializzato da zero durante la scansione. Oppure, aumentare il valore del puntatore a un elemento dell'array e, dopo la scansione, calcolare la differenza tra i puntatori all'elemento corrente e al primo.

Passaggio 6

Ottieni la dimensione di un array dinamico rappresentato da un framework o da un oggetto libreria chiamando il relativo metodo. Tutte le classi che incapsulano la funzionalità di tali array hanno metodi per ottenere il numero corrente di elementi. Ad esempio, la classe template std:: vector della libreria standard C ++ ha un metodo size, la classe QVector del framework Qt ha un metodo count e l'analoga classe CArray di MFC ha un metodo GetCount.

Consigliato: