25/11/09 13:23
Pikke
Salve a tutti, sono nuovo del forum e vorrei condividere con voi il mio problema:
il programma che posto qui sotto è molto semplice, serve a modificare un campo di una struct attraverso due funzioni. Il programma produce un errore che ho individuato essere nella funzione init(), sembra infatti che si verifichi una segmentation fault quando il programma cerca di accedere a a->stringa... ponendo la porzione di codice di init direttamente nel main il problema sembra sparire. Qualcosa non va con il modo in cui tento di accedere ai campi della struct ma solo della funzione init, in quanto scambia non sembra avere lo stesso problema nonostante il metodo di accesso sia identico..
aggiungo per completezza che lavoro su windows 7 con l'ultima release di wxDev-c++.
[i]EDIT by HeDo: Il codice va racchiuso tra i tag code, più attenzione la prossima volta.
il programma che posto qui sotto è molto semplice, serve a modificare un campo di una struct attraverso due funzioni. Il programma produce un errore che ho individuato essere nella funzione init(), sembra infatti che si verifichi una segmentation fault quando il programma cerca di accedere a a->stringa... ponendo la porzione di codice di init direttamente nel main il problema sembra sparire. Qualcosa non va con il modo in cui tento di accedere ai campi della struct ma solo della funzione init, in quanto scambia non sembra avere lo stesso problema nonostante il metodo di accesso sia identico..
#include<stdlib.h> #include<stdio.h> #include<string.h> typedef struct prova{ char stringa[64]; }struttura; void scambia(struttura*,char*,int); void init(struttura *); int main() { char str[1000]; int l; struttura *info; gets(str); l=strlen(str); init(info); scambia(info,str,l); printf("%s\n",info->stringa); fflush(stdin); getchar(); return 0; } void scambia(struttura *a,char *stringa,int l) { int i; for(i=0;i<l;i++) a->stringa[i] = stringa[i]; } void init(struttura *a) { int i; for(i=0;i<64;i++) a->stringa[i] = 0; }
aggiungo per completezza che lavoro su windows 7 con l'ultima release di wxDev-c++.
[i]EDIT by HeDo: Il codice va racchiuso tra i tag code, più attenzione la prossima volta.
Ultima modifica effettuata da HeDo 25/11/09 19:02
aaa