ça me parait bien comme truc !
j´ai déja une remarque :
si tu mets ta chaine a la fin de ta structure, pourquo laisser le char* qui pointe dessus ? a priori tu n´en as plus besoin
(sauf si c´est pour faciliter l´écriture apres)
par pour y accéder, il te suffira de faire :
char* c = (char*)&ma_struct + sizeof(ma_struct);
ce qui est certes un peu plus lourd que :
ma_struct->chaine
Sinon, hormis cela, je dirais que le probleme de décalage de données n´est est pas vraiment un a condition que tu utilises bien sizeof
En effet, imaginons que tu veuilles rajouter des données a une telle structure :
struct test
{
int a;
char b;
}
le sizeof de cette struct est bien 8 et non 5 pour aligner sur la donnée suivante, meme si c´était un tableau de int.
C´est mon avis, bien sur, je peux me tromper.
bref, c´est une bonne idée, le débat est intéressant 