int *p = new int;
Cette alloue assez de mémoire pour un seul objet de type int
et stocke un pointeur vers elle dans le pointeur-to-int
variables p
. Cela signifie que *p
fait référence à un objet int
valide.
int *p = new int[10];
Cette mémoire contiguë réserve suffisamment de dix objets de type int
et stocke un pointeur vers la première int
dans le pointeur-to-int
variables p
. Cela signifie que p[0]
à p[9]
se réfèrent aux objets int
valides.
int *p = new int[];
Cette instruction est syntaxiquement incorrecte. Ce n'est pas un C++ valide, et n'a donc aucune signification.
... why is it required to specifically mention pointer array size?
Sinon, comment est l'allocateur de mémoire censé savoir la quantité de mémoire à allouer si vous ne dites pas combien de int
s dont vous avez besoin de place pour?
et le dernier est une erreur: expression primaire attendue avant ']' jeton int * p = new int []; –