Salve a tutti! Mi avvicino oggi per la prima volta al linguaggio C, e volevo chiedervi: è possibile inizializzare contemporaneamente due (o più) array usando uno stesso ciclo for?
Ci ho provato, ma quando li faccio stampare uno dei due (sempre lo stesso, indipendentemente dall'ordine con cui li scrivo nel ciclo) appare sballato nei primi componenti... non riesco proprio a capire cosa accada, anche perché durante il ciclo viene stampato correttamente, mentre è sballato soltanto quando lo stampo poi fuori dal ciclo di inizializzazione...
Inoltre, se uso un n abbastanza grande (esempio =99) mi restituisce un errore di "segmentation fault", che non capisco a cosa sia dovuto dato che con n più piccoli non compare...
(il programma doveva essere un crivello di eratostene ma a causa di questi errori ho cancellato tutto il resto e lasciato la sola definizione degli array..)
Ecco il codice:
codice:
/* Programma che scriva tutti i numeri primi da 1 a n (n variabile fissato dall’utente)
CRIVELLO DI ERATOSTENE */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
int i,j,c,n=0;
int primi[n];
int setaccio[n];
printf("\n\nFino a che numero estendi la ricerca?\t");
scanf("%d",&n);
printf("\n");
for (i=0;i<=(n);i++)
{
setaccio[i]=i+2;
primi[i]=i+2;
printf("%d, ",setaccio[i]);
}
printf("\n");
printf("primi: ");
for (i=0;i<=(n);i++)
{
printf("%d, ",primi[i]);
}
printf("\n");
printf("setaccio: ");
for (i=0;i<=(n);i++)
{
printf("%d, ",setaccio[i]);
}
printf("\n\n");
return 0;
}