Wipol
07-10-2008, 11:03
Ciao a tutti sono nuovo di questo forum anche se visito molto spesso il sito :)
ma veniamo al problema.. Ho programmato spesso su windows con il C++ e per l'università sono passato a linux e al C..
Ho un problema di allocazione degli array, o per meglio dire a leggere gli array allocati.. (sempre se gli alloca)... Faccio un semplice esempio:
#include <stdio.h>
int main(int argc, char *argv[]){
int a[5];
int i=0;
for(i=0;i<5;i++)
a[i]=i;
printf("%d",a[0]);
return 0;
}
non sto neanche a spiegarvi cosa fa questo semplicissimo programmino, ma ora sorgono i problemi..
la compilazione non ha problemi (con gcc) ma al momento dell'esecuzione mi da un errore di segmentation fault...
ho pensato fosse un problema con linux.. e ho provato lo stesso programmino su Windows.. Compilazione ok, e poi mi esce uno di quei soliti errori (che in windows ci segnala molto spesso :P) che non è riuscito a leggere la memoria ("bla bla......la locazione 0x123af77 non poteva essere read.... bla bla") comunque qualcosa del genere... non ricordo la dicitura esatta...
la cosa strana è che sostituisco la printf con:
printf("%d",a[8]);
l'esecuzione non lancia nessun errore (in entrambi gli OS) ma nn produce nulla (non so se è normale, ma a me sembra strano)
ora non so cosa pensare... ho sbagliato qualcosa nell'allocazione dell'array? a me sembra tutto esatto (altrimenti mi do all'ippica)... voi cosa pensate possa essere? è un problema urgente perchè per l'università ho bisogno di programmare in C, e se non posso usare gli array non vado molto lontano..
infine non so se possa esservi utile ma vi posto le caratteristiche del pc:
AMD Turion 64 x2 Mobile TL-56
2GB Ram
OS: Windows XP Pro SP3 e Ubuntu 8.04..
Grazie
ma veniamo al problema.. Ho programmato spesso su windows con il C++ e per l'università sono passato a linux e al C..
Ho un problema di allocazione degli array, o per meglio dire a leggere gli array allocati.. (sempre se gli alloca)... Faccio un semplice esempio:
#include <stdio.h>
int main(int argc, char *argv[]){
int a[5];
int i=0;
for(i=0;i<5;i++)
a[i]=i;
printf("%d",a[0]);
return 0;
}
non sto neanche a spiegarvi cosa fa questo semplicissimo programmino, ma ora sorgono i problemi..
la compilazione non ha problemi (con gcc) ma al momento dell'esecuzione mi da un errore di segmentation fault...
ho pensato fosse un problema con linux.. e ho provato lo stesso programmino su Windows.. Compilazione ok, e poi mi esce uno di quei soliti errori (che in windows ci segnala molto spesso :P) che non è riuscito a leggere la memoria ("bla bla......la locazione 0x123af77 non poteva essere read.... bla bla") comunque qualcosa del genere... non ricordo la dicitura esatta...
la cosa strana è che sostituisco la printf con:
printf("%d",a[8]);
l'esecuzione non lancia nessun errore (in entrambi gli OS) ma nn produce nulla (non so se è normale, ma a me sembra strano)
ora non so cosa pensare... ho sbagliato qualcosa nell'allocazione dell'array? a me sembra tutto esatto (altrimenti mi do all'ippica)... voi cosa pensate possa essere? è un problema urgente perchè per l'università ho bisogno di programmare in C, e se non posso usare gli array non vado molto lontano..
infine non so se possa esservi utile ma vi posto le caratteristiche del pc:
AMD Turion 64 x2 Mobile TL-56
2GB Ram
OS: Windows XP Pro SP3 e Ubuntu 8.04..
Grazie