Come creare un array in C

June 26

Array offrono il metodo più efficiente per la memorizzazione di liste di dati in C. Sono molto facile per il programmatore di creare e utilizzare, e sono straordinariamente veloce per il computer per accedere e aggiornare. Tuttavia, essi possono sprecare un sacco di memoria, quindi non sono sempre la cosa migliore da usare. Quando non è utilizzato con attenzione, ma possono anche causare crash, bug e l'instabilità del sistema.

istruzione

Creare un array in C

1 Capire che ogni elemento di una matrice (o qualsiasi altro tipo di lista) sarà lo stesso tipo di dati. Ad esempio, un elenco di punteggi dei test sarà un array di interi, dal momento che ogni punteggio del test è un numero intero. Per i dati più complessi, è necessario definire una struttura.

2 Decidere quale sia la dimensione più grande l'array può mai raggiungere sarà, perché gli array hanno una lunghezza fissa. Avrai voglia di trovare un equilibrio tra l'avere il vostro programma in grado di gestire insiemi di dati insolitamente lunghi, e averlo richiedono (e rifiuti) un sacco di memoria.

3 Creare l'array stesso modo si creerebbe una singola variabile, ma aggiungere la dimensione massima tra parentesi quadre dopo il nome, come in questi esempi:

int test_scores [50];
char first_name [20];
employee_record dipendenti [1000];

4 Creare una seconda variabile che tiene traccia del numero di elementi che hai aggiunto alla matrice finora.

5 Creare un array con dimensioni multiple semplicemente facendo un array di array, in questo modo:

Int test_answers [10] [20];
student_names char [50] [20];

Utilizzare la matrice

6 Accedere agli elementi della matrice utilizzando l'indice tra parentesi quadre, in questo modo:

test_scores [12] = 50;
printf ( "punteggio di prova:% d \ n", test_scores [i]);

7 Passare array a funzioni, se lo si vuole. Non è necessario (e non dovrebbe) specificare la dimensione nella definizione della funzione. Questo è ciò che la definizione della funzione e la chiamata sarà simile:

funzione di subtotale (int test_scores []);
test_subtotal = subtotale (test_scores);

Consigli e avvertenze

  • L'indice di un array è sempre di tipo int.
  • Una stringa di caratteri è in realtà un array di caratteri, e le relative funzioni stringa di gestione integrato in librerie standard di C lavorare con questi array.
  • Quando si passa una matrice a una funzione, le modifiche apportate alla matrice dalla funzione porteranno oltre alla funzione chiamante!
  • Si noti che il primo elemento di un array è elemento 0, non elemento 1. Ciò significa che se l'array ha 50 elementi, che sono numerati da 0 a 49.
  • Accesso agli elementi oltre l'ultima quella che ha dichiarato è chiamato un "buffer overflow" ed è la causa della parte del leone di bug e crash di programmi C. C non offre alcuna protezione contro i buffer overflow. Invece, è a voi per evitarlo attraverso un'attenta programmazione.
  • La dimensione del array deve essere una costante, e non può essere modificata facilmente, mentre il programma viene eseguito. Se avete bisogno di essere in grado di ridimensionare l'elenco, come si va, considerare l'utilizzo di una lista collegata, invece.