PDA

View Full Version : [C] dubbio su array


Bestseller
24-10-2010, 11:50
Buongiorno.

Ho un paio di dubbi sugli array nel linguaggio C:
1) se inizializzo un array (es. int a[10]) e nè l'utente nè il programma inseriscono i vari valori all'interno di esso, di default che valore assumono a[0], a[1], a[2],...a[9]?
2) supponiamo di avere due array(es a[10],b[10]). Nel primo array A, l'utente inserisce i valori 0,1,2,3,4,5,6,7,8,9, mentre l'array B rimane vuoto.
Posso utilizzare il seguente codice, o esso porta a delle contraddizioni nel sistema? if(a[i]=b[m]){...}
"i" e "m" è un numero compreso tra 0 e 9.
In altre parole: posso confrontare una "casella" di un array pieno, con un'altra di un array vuoto?

Vi ringrazio. Buona domenica.

- Lke -
24-10-2010, 12:32
Buongiorno.

Ho un paio di dubbi sugli array nel linguaggio C:
1) se inizializzo un array (es. int a[10]) e nè l'utente nè il programma inseriscono i vari valori all'interno di esso, di default che valore assumono a[0], a[1], a[2],...a[9]?
2) supponiamo di avere due array(es a[10],b[10]). Nel primo array A, l'utente inserisce i valori 0,1,2,3,4,5,6,7,8,9, mentre l'array B rimane vuoto.
Posso utilizzare il seguente codice, o esso porta a delle contraddizioni nel sistema? if(a[i]=b[m]){...}
"i" e "m" è un numero compreso tra 0 e 9.
In altre parole: posso confrontare una "casella" di un array pieno, con un'altra di un array vuoto?

Vi ringrazio. Buona domenica.

Che io sappia quando inizializzi un array te lo trovi con dei valori apparentemente casuali.
Ciò non ti impedisce di confrontare un array "pieno" ed uno "vuoto": semplicemente è, credo, inutile farlo, perchè non hai il controllo di quello che succederà.
Per essere fattibile lo è.

Se ne hai le conoscenze butta giù un programma che inizializza solo i due array, ti scrive i valori del primo (e magari anche del secondo), così vedi i valori casuali. Poi riempi il primo e lo confronti con il secondo come hai detto tu prima.

Di programmazione non so molto, sperimenta (tanto il pc non esplode) che è il miglior modo per imparare :)

Bestseller
24-10-2010, 13:37
Finalmente ho trovato l'errore nel mio programma! :)
Dovevo scrivere: if(a[i]==b[m]){...} e NON if(a[i]=b[m]){...}

Supdario
24-10-2010, 14:19
In ogni caso l'array vuoto non sarà inizializzato a 0, quindi se devi inizializzarlo a 0 devi fare così:

static int b[10];
oppure
int *b = (int *) calloc(10, sizeof(int));