PDA

View Full Version : Segmentation fault, perchè?


VegetaSSJ5
31-08-2004, 19:09
Ragazzi allego qui un programma che ha ancora bisogno di essere terminato però fin qui dovrebbe funzionare... Si compila correttamente con cc -Wall però a tempo d'esecuzione mi dà un errore di segmentation fault. L'errore dovrebbe essere tra la riga 81 e la 100. Riguarda sicuramente le chiamate per la creazione di alcuni semafori, ma non riesco a capire come mai mi dà quell'errore. Potete farmi il favore di esaminare quelle 20 righe e dirmi dov'è l'errore? grazie

ilsensine
31-08-2004, 20:40
unrar main.rar
bash: unrar: command not found

;)

VICIUS
31-08-2004, 21:07
gdb dice che il problema sta qui:
main.c:91
for (i=0; i<10; i++) ctl_arg.array[i]=0;
nella riga precedente vedo questo:
semun ctl_arg;
da quello che leggo in man array e un puntatore se vuoi accederci devi allocare almeno della ram con malloc. Probabilmente la struttura va prima inizializzata con qualche funzione-
union semun {
int val; /* value for SETVAL */
struct semid_ds *buf; /* buffer for IPC_STAT, IPC_SET */
unsigned short *array; /* array for GETALL, SETALL */
/* Linux specific part: */
struct seminfo *__buf; /* buffer for IPC_INFO */
};

ciao ;)

VegetaSSJ5
01-09-2004, 11:21
Originariamente inviato da ilsensine
unrar main.rar
bash: unrar: command not found

;)
adesso l'allegato è .zip


VICIUS oggi pomeriggio provo con una malloc e vediamo un po'...:)

VegetaSSJ5
02-09-2004, 01:48
grazie! facendo la calloc (così mi risparmio il for) ho risolto!;) :D :D