Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214

    [C] Lettura da file fino a \n

    Ciao a tutti ragazzi, ho un problema con la lettura di una porzione di file. In pratica devo leggere fino al carattere \n e poi manipolare la stringa così ottenuta. Il punto è che non so a priori la dimensione di questa porzione, in quanto è presente una lista allocata dinamicamente, che quindi mi fa variare la dimensione dell'intera stringa. Mi date qualche suggerimento? Grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se usi una stringa da 4 kbytes non basta a leggere una singola riga?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214
    Teoricamente si, ma vorrei limitare al massimo lo spreco di memoria...Per rilocarla dinamicamente potrei fare una cosa del genere?

    codice:
    ...FILE f passato come parametro...  
    int L=4096, rec;  
    char* s= NULL;   
    
    fgets(s, L, f);  
    rec = strlen(s);  
    s = realloc(s, rec);

  4. #4
    4 KB su un computer attuale è niente... inoltre le allocazioni sullo stack sono pressoché gratuite (basta non eccedere)
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte il fatto che 4 k sono niente, è comunque una sola stringa e potresti anche occuparne 10 k senza problemi.

    E' sicuramente molto più pesante e inefficiente allocare e riallocare per risparmiare qualche byte ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214
    Vi ringrazio molto! Come sempre siete preziosissimi! A presto!

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.