Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110

    [C]errore di segmentazione

    ciao a tutti
    ho un problema con un programma, andando a suddividerlo ho capito dove è che mi da errore in particolare il codice che mi da errore è il seguente:


    codice:
    int min,ora,gm,year;
    float created,dif;
    
    
    dif=min+ora+day+gm+year;
    
    printf("la differenza in minuti e %f \n",dif);
    
    created=created+(dif*0.00069444);
    
    printf("il valore attuale di created e %f",created);
    quando vado a complialre non mi da errori, ma quando mando in esecuzione mi da Errore di Segmentazione.
    Da cosa dipende??
    P.S. ho anche provato a dichiare dif int per capire se era quello il problema, ma niente stesso errore

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    hai provato ad assegnare dei valori a min, ora, gm e year prima di utilizzarli nella somma?
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    si si sono tutti valori che già mi sono calcolato e il calcolo va a buon fine
    è qeusto pezzo di codice che mi da errore perchè provando a toglierlo tipo mettendolo come commento
    il programma funziona regolarmente

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    guarda a me quel pezzo di codice che hai scritto non va in segmentazione
    non ho valori coerenti (ovviamente)
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    ma la cosa strana è ch ein un'altro programma lo stesso codice funziona...
    veramente non riesco a capire a cosa sia dovuto l'errore di segmentazione

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Nell'esempio che hai proposto manca la dichiarazione di day quindi, come lo compili?

    Quel codice non dovrebbe essere un problema. Assegna dei valori certi con

    codice:
    	int min=0,ora=0,gm=0,year=0,day=0;
    	float created=0,dif;
    per vedere se hai ancora l'errore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da oregon
    Nell'esempio che hai proposto manca la dichiarazione di day quindi, come lo compili?

    Quel codice non dovrebbe essere un problema. Assegna dei valori certi con

    codice:
    	int min=0,ora=0,gm=0,year=0,day=0;
    	float created=0,dif;
    per vedere se hai ancora l'errore.
    glielo avevo già detto e dice che quando è lì sono valorizzati.

    Sul mio sistema (unix) con inizializzazioni ho ovviamente risultati coerenti, senza assegnazioni ho risultati "casuali", ma niente segmentazioni
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    A questo punto ho provato a mettere il codice in una funzione in modo da vedere che succede...
    forse sbaglio io qualcosa ma quando si usano le funzioni lo schema è tipo questo:

    tipo_di_dato_restituito nome_funzione(tipo_dato dato);

    main()
    codice
    .
    .
    .
    x=nome_funzione(tipo_dato dato);

    print x

    ------------

    poi da parte scrivo la funzione

    tipo_di_dato_restituito nome_funzione(tipo_dato dato)
    codice
    .
    .
    .
    return (dato)

    sbaglio qualcosa??

    perchè quando vado a compilare mi da alla linea dove richiamo la funzione
    "error: expected expression befor float

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    o scrivi bene il codice o non lo metti per niente, perché da quello che hai scritto non si capisce un tubo
    RTFM Read That F*** Manual!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    codice:
    float difmin(float created);
    
    main()
    {
    ...
    ...
    ...
    created=difmin(float created);
    
    printf(created);
    
    }
    
    float difmin(float created);
    {
    ...
    ...
    ...
    return (created);
    }
    non metto tutto il codice che è un pò lungo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.