Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841

    [c\c++]settare automaticamente tutti i valori di una struttura a 0

    data una struttura, ad esempio WAVEHDR Structure, qual'è il modo piu comodo per settare tutti i suoi valori a 0 in automatico??
    memset(&Structure,0,sizeof(WAVEHDR ))?? si puo fare in modi piu eleganti?

    grazie

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    L'alternativa è campo per campo. Un pò scomodo direi
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    C'è sempre l'aggregate initialization.
    codice:
    WAVEHDR struttura={0};
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da MItaly
    C'è sempre l'aggregate initialization.
    codice:
    WAVEHDR struttura={0};
    mhhh bello questo... ma è solo c++ o si puo fare anche in c?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Attenzione ... lo puoi fare per inizializzare la struttura, non quando vuoi, come con la memset ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Mi pare che valga anche in C. Occhio però che la aggregate initialization inizializza a 0 i campi della struttura, non i byte di memoria che essa occupa. Questo può essere un bene (il C non garantisce, ad esempio, che un float azzerato da memset risulti effettivamente uguale a zero, mentre così vai sul sicuro) ma anche un male, dato che alcune librerie che usano le strutture in modo particolare potrebbero esigere che vengano azzerati anche i byte di padding.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.