Tableau dynamique

Comme il est nécessaire de déclarer une variable avant de l'utiliser et comme la taille d'un tableau n'est pas forcément connue, on peut contourner cette contrainte en déclarant un pointeur vers un tableau dont on définira la taille ultérieurement.


Cette déclaration est possible avec la commande NEW :

nom_du_pointeur= new type[taille]

Exemple

Dans l'initialisation (header par exemple) :

int *tableau;
int taille;


Dans le code :

cin >> taille;

tableau = new int[taille];


Autre exemple : Placement des données d'un fichier (dont on ne connait pas la taille initialement) dans un tableau

Dans l'entête :

   unsigned char *filecontent;

Dans le code :

QFile orgBMPfile("image.bmp"); //on lie un type file à un fichier image

taillefichier=10000; //la taille totale du fichier fait 10000 octets

filecontent = new unsigned char[taillefichier]; //on créé le tableau

orgBMPfile.read((char *)filecontent, taillefichier);// on copie toutes les données dans le tableau

Remarque : (char *) permet ici d'adapter les types à la fonction read


Remarque : Une autre méthode consiste à utiliser les vecteurs