Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C] Errore overflow in implicit constant conversion per fseek

    Salve sto scrivendo un programma di gestione di una biblioteca per un esame universitario e mi sono ritrovato ad avere dei problemi con l'fseek in quanto voglio spostare il file pointer di un record per poter sovrascrivere il record stesso, ma quando vado ad applicare fseek(fp,-sizeof(libro), SEEK_CUR);
    mi da un warning: overflow in implicit constant conversion [-Woverflow] e non sposta il puntatore.
    Qualcuno saprebbe indicarmi come poter risolvere questo problema?
    Vi allego il codice ed evidenzio la parte interessata
    File allegati File allegati

  2. #2
    sizeof restituisce un size_t, che è un intero senza segno, e applicandoci l'operatore di meno unario va in overflow. Per fare quello che vuoi tu devi prima convertire ad un intero con segno:
    codice:
    fseek(fp,-int(sizeof(libro)), SEEK_CUR);
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    grazie. Aggiustandolo adesso mi da due errori però

    [Error] expected expressions before int
    [Error] too few arguments to function fseek
    come posso risovlerli?

  4. #4
    Ah scusa, è C... allora
    codice:
    fseek(fp,-(int)sizeof(libro), SEEK_CUR);
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    grazie mille non mi da nessun errore ora...mi avete salvato

  6. #6
    Amaro C++, il gusto pieno dell'undefined behavior.

Tag per questa discussione

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.