Structure de taille dynamique
Bonjour,
pour le développement d'un module pour le noyau linux sur ARM, pour la lecture "brute" d'un zone de mémoire flash,
j'ai un buffer non pas en char* mais d'une structure représenant la forme des données en mémoire flash.
Voici ma structure:
Code:
1 2 3 4 5 6 7 8 9 10 11
| typedef struct
{
//métadonnées
uint8_t id;
...
uint32_t klen;
uint32_t vlen;
//données
uint8_t data[1];
}page; |
Comme la taille de la page n'est pas connue statiquement, et elle peut varier voici comment je l'utilise:
Code:
1 2
| page *mon_buffer=vmalloc( page_length );
read_flash(mon_buffer, page_length) |
Ainsi je n'ai pas besoin de spécifier une par une les métadonnées et je peux accéder directement au donnée utiles via
Code:
mon_buffer->data+offset_data
.
Cela est-il corrècte ? peut il y a avoir un cas qui mettrais en défaut ce choix de mise en oeuvre (si oui lequel ?) ?
Et au sens plus "conventionel" cela pose t-il un probleme de "violation" des conventions ... ?
Merci