Je voudrais faire quelque chose comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
template <int keysize>
struct MaClasse
{
 long s_offset,s_length;
 char s_key[keysize];
};
 
void foo(int keysize)
{
MaClasse<keysize> *p=new MaClasse<keysize>();
...
}
Je rêve de pouvoir déclarer des structures dont la taille serait définie au runtime et non à la compilation.

On peut le gérer soi-même mais c'est un peu casse-gueule:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct MaClasse
{
 long s_offset,s_length;
 //char s_key[...];
};
 
void foo(int keysize)
{
char *t_ptr=new char[sizeof(MaClasse)+keysize];
MaClasse *p=new(t_ptr) MaClasse();
...
p->s_offset=0;
p->s_length=327
strcpy((char *)(p+1),"abcdef");
}
Une aide du langage serait bienvenue.