Salve a tutti, è da un po' che ho un dubbio:
se creo una struct con delle funzioni ad esempio:
# pragma pack(1)
struct persona{
char nome[50];
char cognome[50];
void setNome(const char *n){
strcpy(nome,n);
}
void setCognome(const char *c){
strcpy(cognome,c);
}
};
# pragma pack()
e poi la uso in un modo del genere:
persona pers;
memset(&pers,0,sizeof(persona));
insomma la tratto come un area di memoria qualsiasi
potrei avere dei problemi?
un mio collega dice che se nella struct c'è qualcos'altro oltre alle variabili
lo standard non garantisce come viene allocata la memoria.
Pero ho visto che se non ci sono funzioni virtuali il sizeof(persona) è esattamente
uguale a 100 e chiaramente &pers==&pers.nome[0];
(ho fatto anche la prova sia con gcc che con visual c++)
Voi che ne pensate?