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

    [C] Dimensione stringa incognita

    Ciao a tutti,

    e possibile con l uso della malloc prendere in input una stringa ma senza conoscerne la dimensioni a priori?

    Per quanto mi riguarda penso che l utente debba almeno inserire la lunghezza in caratteri della stringa, senno la malloc come fa a sapere quanti byte deve allocare?

    suggerimenti?


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Basta prevedere un buffer statico abbastanza capiente (pensi che 4K basteranno per l'input da tastiera ... ? ) e poi copiare l'effettivo input in un array dinamico appositamente allocato.

  3. #3

    ah ecco

    Perfetto, il mio dubbio era proprio quello, cioè se si potesse evitare di passare da un buffer statico...evidentemente non si puo evitare...thanks a lot!

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    E se 4 k non bastassero?
    Come si può essere davvero sicuri? Si deve proprio per forza passare per un buffer statico?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non bastano 4k per un input da tastiera?

    Comunque, puoi fare una funzione che prenda in input un carattere alla volta e che allochi man mano la memoria necessaria (magari a blocchi) ... pero' e' poco utile ...

  6. #6
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    mi pare che fosse
    1 char = 1 byte...
    8byte = 1k
    4k = 32byte

    bhe appena 32 caratteri? e se ne scrivo di piu'?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  7. #7
    EEEEEH? VVoVe: VVoVe:
    1 char = 1 byte
    1024 byte = 1 KB (o, in breve, K, o più correttamente KiB).
    4 KB = 4092 caratteri.
    L'otto c'entrava con i bit...
    8 bit = 1 byte
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    4 K = 4096 ....

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    menomale che ho scritto
    "mi pare che fosse", almeno la figuraccia è stata un po ammortizzata!
    mi ero dimenticato che era a 1024...
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

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.