c++ qu'est-ce que “pointeur = new type” par opposition à “pointeur = new type []”?

Dans de nombreux tutoriels, le premier des exemples de code sur la mémoire dynamique commencer le long des lignes de:

int * pointer;
pointer = new int;        //version 1
//OR
pointer = new int [20];    //version 2

Ils toujours procéder à expliquer la manière dont la deuxième version fonctionne, mais totalement éviter de parler de la première version.

Ce que je veux savoir, c'est, qu'est - pointer = new int créer? Que puis-je faire avec? Ça veut dire quoi? Chaque tutoriel sans échec va éviter de parler de la première version entièrement. Tout ce que j'ai découvert (grâce à vous embêter) est-ce:

#include <iostream>

using namespace std;

int main()
{
    int * pointer;
    pointer = new int;
   pointer[2] = 1932;   //pointer [2] exists? and i can  assign to it?!
   cout << pointer[2] << endl;      //... and access it successfully?!
};

Le fait que je peux indice pointer me dit si loin que pointer = new int crée implicitement un tableau. Mais si oui, de quelle taille est-il?

Si quelqu'un pouvait aider à éclaircir tout cela pour moi, je lui en serais reconnaissant...

Notez également que la mémoire allouée avec nouveau doit être libérée avec supprimer, alors que la mémoire allouée avec [] doit être libérée avec delete [], ou d'une catastrophe peut se produire. Ils sont deux opérateurs différents. C'est l'un de la plus stupide des choses jamais inventé dans tout langage de programmation, et ce n'est pas une mince affaire à réaliser.
Il pourrait être votre compilateur qui est de vous aider un peu en allouant des tampons sur les deux côtés de ce que vous voulez. Vous pouvez lire à ce sujet ici - _malloc_dbg (CRT)
J'ai également trouvé ce utile avec c++ et de la mémoire en général: l'Allocation de la Mémoire
Curieux qu'un tutoriel en parler new int[n], et pas simplement new int. En plus de 20 ans de programmation en C++, je ne pense pas que je ai jamais utilisé un tableau new.
Je trouve cela intéressant... oh, et le site est cplusplus

OriginalL'auteur code shogan | 2011-05-18