Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    229

    [C]: programma C

    I segriti di windows xp: compilando questo codice il compilatore non mi da errori, ma dopo aver inserito i valori e dando lìinvio mi compare la solita finestra di windows XP
    "Segnalazione del problema a Microsoft: potrebbe essersi verificata la perdita dei dati su cui si sta lavorando".
    Secondo voi a cosa è dovuto???
    Grazie per la collaborazione



    // prova

    # include <stdio.h>
    # include <time.h>

    main(){

    int s_hour, s_minutes, s_second, e_hour, e_minutes, e_second;
    struct tm * start;
    struct tm * end;
    double total;
    time_t start_t, end_t;
    int i;

    printf("Inserire ore, minuti e secondi");

    scanf("%d",&s_hour);
    scanf("%d",&s_minutes);
    scanf("%d",&s_second);

    printf("Inserire ore, minuti e secondi");

    scanf("%d",&e_hour);
    scanf("%d",&e_minutes);
    scanf("%d",&e_second);

    start->tm_hour=s_hour;
    start->tm_min=s_minutes;
    start->tm_sec=s_second;

    end->tm_hour=e_hour;
    end->tm_min=e_minutes;
    end->tm_sec=e_second;

    mktime(start);
    mktime(end);


    total= difftime(end,start);

    //printf("Stampa il numero:");
    printf("%d", &total);

    //start_t=mktime(start);
    //end_t=mktime(end);

    //total= difftime(start_t, end_t);
    //scanf("%d", &i);

    }


    Ad Maiora

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Se dichiari un puntatore a una struttura, prima di accedere ai campi devi allocare la memoria per la strutttura: la dichiarazione del puntatore dichiara il puntatore che puntera ad una zona arbitraria della memoria e se tenti di accedervi quasi probabilmente avrai l'errore di segmentation fault. Devi quindi allocare la memoria con malloc a cuui passi la dimensione del tipo di dato da allorcare che ottieni con l'operatore sizeof applicato al tipo: sizeof(struct tm):

    Quindi sostituisci le righe:

    struct tm * start;
    struct tm * end;

    con:

    struct tm * start = ((struct tm))malloc(sizeof(struct tm));
    struct tm * end = ((struct tm))malloc(sizeof(struct tm));

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    229
    ho provato a sostituire il codice ma ora mi da i seguenti errori:

    c:\docume~1\nen~1\desktop\c\miaprova.c: In function `main':
    c:\docume~1\nen~1\desktop\c\miaprova.c:9: parse error before `)'
    c:\docume~1\nen~1\desktop\c\miaprova.c:10: parse error before `)'

    come posso risolverlo?
    Grazie

    Ad Maiora

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    struct tm * start = (struct tm*)malloc(sizeof(struct tm));
    struct tm * end = (struct tm*)malloc(sizeof(struct tm));

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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 © 2025 vBulletin Solutions, Inc. All rights reserved.