Bonjour,

Je suis sur un cas de déclaration de tableau qui me dérange.
Après que mon programme ait lu l'en-tête d'un fichier, il sait si le fichier contient un tableau d'entiers de 2 bytes ou de 4 bytes. Suivant le résultat, il peut allouer dynamiquement l'espace mémoire. Cette allocation se fait dans une instruction switch (ou if). Mais ensuite je ne peux pas utiliser mon tableau en dehors de cette instruction car le compilateur me dit que le tableau que j'essaie de manipuler doit l'être à l'endroit où il est déclaré.
Est-ce qu'il y a un moyen d'utiliser une méthode semblable à une surdéfinition pour que le pointeur sur le tableau que j'essaie d'utiliser en dehors de l'instruction switch puisse marcher ?

Code de déclaration ci-dessous :
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
switch(TYPE) 
{
  case 2:
  {
    short int* tab=new short int[size_tab];
    short int* tabtmp=new short int[size_tab];
    break;
  }
  case 4:
  {
    long int* tab=new long int[size_tab];
    long int* tabtmp=new long int[size_tab];
    break;
  }
}
Error pour les lignes suivantes en dehors de l'instruction de condition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for(i=0; i < A; i++)
{
  for(j=0; j < B; j++)
    tab[A*j+i]=tabtmp[B*i+j];
}