Problema programmazione C

Pubblicità

HopelessDaniel

Utente Attivo
Messaggi
331
Reazioni
35
Punteggio
45
Ciao a tutti, ho un problema con un programma scritto in C, se lo compilo in windows con devC o su ubuntu con il gcc, non da problemi e si esegue senza restituire errore...
Mentre se lo utilizzo su fedora a scuola lo compila, ma al momento di eseguirlo, ad un certo punto va in segmentation fault, ho eseguito il debug e più o meno ho capito dove si trova l'errore ma non riesco a capire come risolvero... la parte di codice è questa:

https://drive.google.com/file/d/0B2yUvij86Ya9Rl9MR0dkNzdnUjA/edit?usp=sharing

Grazie mille
 
Ultima modifica:
Ho modificato con il file con il codice completo...
GDB (che dovresti imparare ad usare) mi indica che il raise del segnale avviene in "prodotto_matriciale" a causa di "j=my->c; *contmoltip=*contmoltip+1;" (linea 124)
Codice:
0x0000000000400d8e in prodotto_matriciale (mx=0x6032f0, my=0x400603310, 
    contmoltip=0x7fffffffe534) at Progetto.c:124
124             j=my->c;                *contmoltip=*contmoltip+1;
Voglio farti notare anche i vari warning di GCC:
Codice:
Progetto.c: In function ‘MCM’:
Progetto.c:83:25: warning: value computed is not used [-Wunused-value]
  else printf("%c",A[i]);*contmcm++;
                         ^
Progetto.c: In function ‘new_matrice’:
Progetto.c:90:10: warning: unused variable ‘j’ [-Wunused-variable]
   int i, j;
          ^
Progetto.c: In function ‘matrice_prodottop’:
Progetto.c:150:25: warning: value computed is not used [-Wunused-value]
  if(i==j){ return A[i]; *contmoltip++;}
                         ^
Progetto.c: At top level:
Progetto.c:181:1: warning: return type defaults to ‘int’ [-Wreturn-type]
 main(){
 ^
Progetto.c: In function ‘main’:
Progetto.c:186:42: warning: unused variable ‘mat’ [-Wunused-variable]
 int **mat1,**mat2,**mat3,**mat4,**mat5,**mat;
                                          ^
Progetto.c:322:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
[B]Progetto.c: In function ‘stampa_matricep’:
Progetto.c:164:14: warning: ‘i’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   if(m!=NULL && i!=0 && j!=0){
              ^
Progetto.c:164:22: warning: ‘j’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   if(m!=NULL && i!=0 && j!=0){[/B]
                      ^
 
GDB (che dovresti imparare ad usare) mi indica che il raise del segnale avviene in "prodotto_matriciale" a causa di "j=my->c; *contmoltip=*contmoltip+1;" (linea 124)
Codice:
0x0000000000400d8e in prodotto_matriciale (mx=0x6032f0, my=0x400603310, 
    contmoltip=0x7fffffffe534) at Progetto.c:124
124             j=my->c;                *contmoltip=*contmoltip+1;

ho utilizzato anche io GDB è avevo notato dove era l'errore (l'avevo scritto nella parte di codice prima di mettere il link, sulla stessa riga da te segnalata)....ma non riesco a capire perchè restituisca errore, la magior parte del tempo utilizzo devC o ubuntu e non dandomi l'errore non riesco a capire come risolverlo...
 
ho utilizzato anche io GDB è avevo notato dove era l'errore (l'avevo scritto nella parte di codice prima di mettere il link, sulla stessa riga da te segnalata)....ma non riesco a capire perchè restituisca errore, la magior parte del tempo utilizzo devC o ubuntu e non dandomi l'errore non riesco a capire come risolverlo...
Perché quelli non sono errori, bensì warning, che potrebbero causare errori. Puoi compilare con:
Codice:
gcc -Werror -Wall -Wextra
per trattare tali set di warning come errori.
Warning Options - Using the GNU Compiler Collection (GCC)
 
Pubblicità
Pubblicità
Indietro
Top