Tableaux dynamiques
Dans les cours précédents sur les tableaux, nous avons envisagé de créer un tableau comme celui-ci :
 
const entier Nmax = 1000 ; entier A[Nmax] ; ou ceci : intA[1000];
Cette méthode crée un tableau statique. Un inconvénient est que la taille et le type des éléments du tableau ne peuvent pas être modifiés pendant l'exécution du programme. 
Dans l'exemple ci-dessus, un tableau statique de 1000 éléments est créé. C'est-à-dire qu'une zone est allouée en mémoire pour stocker 1000 éléments de type int (un tableau de 1000 éléments de type int). L'adresse du début du tableau est stockée dans la variable  A. Si vous devez traiter un tableau de plus de 1000 éléments, vous devrez modifier la description et recompiler à nouveau le programme. Lorsque vous travaillez avec de petits tableaux, la majeure partie de la mémoire allouée à un tableau statique sera gaspillée.

Pour une utilisation efficace de la mémoire de l'ordinateur, il est nécessaire de l'allouer dynamiquement. En d'autres termes, la mémoire pour les objets doit être allouée pendant l'exécution du programme selon les besoins (création de nouveaux objets).

En C++, les opérations  nouveau et supprimer sont conçues pour allouer dynamiquement la mémoire de l'ordinateur.  Opération nouveau  alloue de la mémoire à partir de la zone de mémoire libre, et l'opération supprimer libère la mémoire allouée. 
 
Un exemple de création et de suppression d'une variable dynamique
int *A = nouvel entier ; // crée un objet de type int *A = 15 ; // l'initialisation de l'objet se fait via un pointeur (*) // l'initialisation peut se faire immédiatement // lors de la déclaration d'un objet dynamique entier *B = nouveau entier(25); cout << *Un << " " << *B ; // valeur de sortie par pointeur supprimerA ; // mémoire allouée libérée supprimer B ; L'opération new crée un objet du type donné, lui alloue de la mémoire et renvoie un pointeur du type correct vers l'emplacement mémoire donné. Si la mémoire ne peut pas être allouée, par exemple s'il n'y a pas de zones libres, alors un pointeur nul est renvoyé, c'est-à-dire que le pointeur renverra la valeur 0. L'allocation de mémoire est possible pour tout type de données : int float , doublechar etc.

De la même manière, en C++, vous pouvez créer un tableau dynamique qui utilisera l'allocation de mémoire dynamique. La taille d'un tel tableau, qui peut être utilisé pendant l'exécution du programme, par exemple depuis le clavier pour créer des variables dynamiques.
 
En syntaxe C
intN; scanf("%d", &N); int *mas = malloc (sizeof(int) * N); // plus tard pour redimensionner le tableau // utilisé par realloc. ... libre (mas); // libère la mémoire allouée
En syntaxe C++
intN; cin>> N; int*A = nouveau int[N] ; // pour changer la taille du tableau, vous pouvez // transfert des données vers un autre tableau et efface l'ancien ... supprimer []mas ; // libère la mémoire allouée // les crochets indiquent // que nous libérons de la mémoire sous le tableau