ePerTutti


Appunti, Tesina di, appunto tecnica

ARRAY E STRINGHE - Inizializzazione di un array - Occupazione in memoria

ARRAY E STRINGHE - Inizializzazione di un array - Occupazione in memoria


Scrivere la parola
Seleziona una categoria

ARRAY E STRINGHE


Gli array

O      In C si definisce vettore (array) un insieme di variabili dello stesso tipo memorizzate consecutivamente.

O      Gli array permettono la gestione di grandi moli di dati correlati tra di loro e dello stesso tipo.

O      Ogni singola variabile dell`array Ŕ denominata elemento e vi si accede tramite un indice che varia tra 0 e il numero degli elementi-l

Dichiarazione di un array

O      La dichiarazione di un array generico Ŕ del tipo:

Tipo Nome_array[Numero elementi];

O      Ad esempio:

#define GIORNI 7

double temperature[GIORNI];

Accesso ai singoli elementi

O      L`accesso ai singoli elementi avviene tramite un indice intero:

O      primo elemento:

temperature[0];

O      terzo elemento:

temperature[2];

O      ultimo elemento:

temperature[GIORNI-l];

Inizializzazione di un array

O      L`inizializzazione di un array pu˛ avvenire sia in fase di dichiarazione che successivamente:

char nome[8]=;

nome[0]='P';

O      Nel primo caso gli elementi successivi sono inizializzati a 0:

nome[5]==0 true

Occupazione in memoria

O      I singoli elementi di un array (monodimensionale) sono memorizzati consecutivamente in memoria:

int A[100]=;

O      L`accesso ad un elemento avviene come: A+indice

PERICOLO! limiti di un array

O      A differenza di molti altri linguaggi il C non effettua controlli sulla correttezza dell'Indice!

int dummy[100];

dummy[100]=7;

dummy[-l]=0;

O      Le ultime due righe sono un esempio di buffer overrun e possono portare a:

O      malfunzionamento del programma

O      malfunzionamento del sistema operativo

Occupazione in memoria

O      ╚ possibile la definizione di array a pi˙ dimensioni:

int A[2][3]=;

int A[2][3]={,};

O      Lo standard ANSI non pone limiti al numero di dimensioni sebbene alcuni compilatori possano prevederne

long b[2][3][7][12][1024];

char Sbagliato[23,67,89];

Omissione delle dimensioni

Quando l'inizializzazione di un array coincide con la sua dichiarazione si possono omettere le dimensioni (una sola):

long TreElementi[]=;

short MatriceDuePerDue[][2]=;

double ErroreInCompilazione[][]=;

Passaggio a funzioni

O      Il passaggio di array a funzioni avviene per indirizzo:

int a[100], b[10][20]; // array di interi

void MiaFunc(int k[]); // funzione che prende come argomento un array di interi

void MiaFunc(int *k); // equivalente alla precedente

MiaFunc(a); // invocazione

void AltraFunc(int j[][20]);

Le stringhe




O      Uno dei pi¨ comuni utilizzi di un array Ŕ la gestione di stringhe.

O      Per stringa si definisce un array di char terminato dal carattere nullo ' '.

char LaMiaPrimaStringa[4]=''abc'';

char LaMiaSecondaStringa[]=''def'';

char NonStringa[]=;

char StoLargo[100]=''jklmnop'';

La libreria string.h

O      Il C fornisce numerose funzioni per la manipolazione delle stringhe:

#include<string.h>

O      Il C++ estende le capacitÓ del C mediante la classe stringa

#include<string>

string s1; // forse a fine corso?

string.h

O      Tutte le funzioni elencate si basano sull'esistenza del carattere nullo ('0') di terminazione.

O      L'utilizzo delle doppie virgolette ``'' implica l'aggiunta del carattere nullo.

O      L'assenza del '0' implica malfunzionamenti:

O      errori in lettura stringa;

O      errori in scrittura stringa;










Privacy

© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta