PDA

View Full Version : [C] Impostare valore struct in array


GByTe87
05-05-2010, 12:48
Buongiorno a tutti :D

Mettiamo caso che io abbia un'array di struct:

typedef struct Struttura {
int numero;
char testo[10];
} Struttura;

Struttura arrat[10];


Ora, io voglio impostare, per tutte le variabili di tipo Struttura che compongono l'array, "numero = -1"; potrei fare la cosa semplicemente con un ciclo.

Tuttavia, mi rifiuto di credere che non sia possibile farlo tramite una sola istruzione, stile memset.
Si era pensato, inizialmente, proprio ad un memset, usando come value una variabile di tipo struct appositamente valorizzata, se non fosse che value deve essere un int. :fagiano:

Ci tengo a dire che la mia è una questione "di principio", ad ora uso un ciclo e funziona perfettamente :D

Grazie mille
GB

fero86
05-05-2010, 13:33
se programmi in C++ potresti inizializzare dal costruttore:
struct Struttura {
int numero;
char testo[10];

Struttura()
:
numero(-1) {
}
};
ma dal momento che non usi std::string per il campo "testo" immagino che non usi il C++ :D

EDIT - sono un fesso, ho visto solo ora il tag scritto chiaramente nel titolo :fagiano: - FINE EDIT


in C credo proprio che non sia possibile a meno di non fare qualche zozzata che assume la conoscenza esatta del layout della struttura in memoria (tipo appunto memset) e che io francamente ti sconsiglio a meno di non poter controllare con esattezza tale layout, cosa che a sua volta richiederebbe codice potenzialmente non portabile.

GByTe87
06-05-2010, 18:21
In effetti conosco l'esatta dimensione della struttura e quanto spazio occupa, non ho alcuna necessità di portabilità e quindi potrei darmi alle zozzerie senza problemi. :D

Vabbè, lascerò il ciclo :D

Thx :p