|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
[C] Segmentation Fault (core dumped) su ubuntu 7.10
Aiuto, sto uscendo pazzo!!!!
Non capisco come mai il codice allegato mi dia segmentation fault, compila perfettamente! QUalcuno può gentilmente aiutarmi??
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Hint: devi allocare dinamicamente un po' di memoria... |
|
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
non è vero: certi compilatori piuttosto avanzati ad esempio emanano un warning quando incontrano un format string errato in funzioni standard del C come la printf. Il compilatore Microsoft ad esempio nelle ultime versioni lo fa, e mi pare anche il gcc.
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
In "matinformatica" si può enunciare il teorema "una compilazione senza errori/warning NON implica che non ci saranno malfunzionamenti a runtime". La dimostrazione mi sembra lapalissiana... Corollario: sarebbe bello vivere in un mondo senza bug.
Poi, se alcuni compilatori riescono (bontà loro) a rilevare alcuni errori semantici o codice potenzialmente errato allora stiamo parlando di altro. In generale puoi avere codice sintatticamente corretto ma del tutto non funzionante (= quanto affermato nel mio post precedente), con buona pace dei compilatori più evoluti. Ultima modifica di variabilepippo : 26-01-2008 alle 18:46. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
quindi come posso risolvere il problema???
....allocando un po' di memoria mi pare di capire sia la risposta, qualcuno mi dice cosa devo fare in pratica?
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd Ultima modifica di phantom85 : 27-01-2008 alle 17:22. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7260
|
Quote:
poi quando dichiari fig devi allocare la memoria necessaria: Codice:
forma *fig = (forma*)malloc(sizeof(forma)); |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
grazie mille ora va!!! però come mai sul pc d un mio amico va senza l'allocazione??ha anche lui ubuntu, ma una versione precedente credo...
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7260
|
Quote:
forse lui non ha usato un puntatore ma ha dichiarato fig come "forma fig" e poi ha usato la notazione punto al posto della notazione freccia. altrimenti non me lo spiegherei |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Siccome non hai allocato memoria, il puntatore contiene un numero casuale, pertanto va a scrivere a casaccio nella memoria. Nel puntatore del tuo amico, al momento dell'esecuzione, c'era un valore che "sembrava buono", mentre il tuo puntatore aveva un indirizzo che non era valido (i.e. fuori dallo spazio di indirizzamento del tuo processo). Suggerimento: quando allochi memoria, controlla sempre che l'allocazione sia andata a buon fine. Controlla anche nei programmini semplici. Se l'allocazione non e' andata a buon fine, piuttosto che non far niente, termina il programma con un messaggio di errore.
__________________
In God we trust; all others bring data |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:07.




















