[Risolto] Memset su campo di una struct [C]

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Aegis80
Prode Principiante
Messaggi: 66
Iscrizione: venerdì 1 giugno 2007, 13:24

[Risolto] Memset su campo di una struct [C]

Messaggio da Aegis80 »

avendo la seguente struttura

typedef struct{
  char pippo[30];
  int rif_file[31];
} rec_tab_ric;

rec_tab_ric tabric[100];

Vorrei settare a zero il campo dei bit di rif_file di ogni struttura presente nell'array di strutture tabric.

Per questo mi serve la memset ma non so come dare i parametri.... Sapete darmi una mano? grazie in anticipo!
Ultima modifica di Aegis80 il venerdì 28 settembre 2007, 19:45, modificato 1 volta in totale.
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: Memset su campo di una struct [C]

Messaggio da bite »

Se dai

Codice: Seleziona tutto

man memset
ottieni:
MEMSET(3)                  Linux Programmer’s Manual                MEMSET(3)

NAME
      memset - fill memory with a constant byte

SYNOPSIS
      #include

      void *memset(void *s, int c, size_t n);

DESCRIPTION
      The  memset()  function  fills  the  first  n  bytes of the memory area
      pointed to by s with the constant byte c.

RETURN VALUE
      The memset() function returns a pointer to the memory area s.

....
perciò per ogni

Codice: Seleziona tutto

tabric[i]
dovresti fare:

Codice: Seleziona tutto

memset ((void*)tabric[i].rif_file, 0, 31*sizeof(int));
ovvero anche

Codice: Seleziona tutto

memset ((void*)tabric[i].rif_file, 0, sizeof(tabric[i].rif_file));
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Memset su campo di una struct [C]

Messaggio da difesaparcosempione »

Attenzione che se quelle 100 strutture sono dichiarate come variabile GLOBALE non serve inizializzare a zero in quanto dovrebbe averlo già fatto automaticamente il sistema.
ciao
8)  :o
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: Memset su campo di una struct [C]

Messaggio da bite »

Meglio non fidarsi.
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Memset su campo di una struct [C]

Messaggio da difesaparcosempione »

adesso sottomano non ho l'opzione da dare al compilatore affichè non esegui la memset delle globali con valori 0.
Di default le aree globali sono azzerate, in fase di compilazione si può decidere il contrario.
ciao
Aegis80
Prode Principiante
Messaggi: 66
Iscrizione: venerdì 1 giugno 2007, 13:24

Re: Memset su campo di una struct [C]

Messaggio da Aegis80 »

Come dice bit è andato tutto alla grande. Scusate se ho risposto soltanto adesso. vi ringrazio comunque dell'interessamento!!

Ho voluto azzerare tutto per sicurezza perchè dovendo lavorare sui dit del campo se avevo un errore anche per un solo bit settato male ci sarei diventato matto :)
Ultima modifica di Aegis80 il venerdì 28 settembre 2007, 19:46, modificato 1 volta in totale.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti