Te muestro un codigo para que lo comprendas, mira hacia donde apunta cada elemento:
Código
#include <iostream> //#include <initializer_list> class Objeto { private: int u; public: Objeto(int n); //Objeto(const std::initializer_list<char> &n); void Imprimir(); }; int main() { Objeto cadenas[2] = {5, 9}; // estatico, en la pila Objeto *instanciao = new Objeto(666); // dinamico int y=8; // estatico, en la pila std::cout << &cadenas[0] << " " << &cadenas[1] << " " << &y << " " << instanciao << std::endl; for(int i = 0; i < 2; i++) cadenas[i].Imprimir(); return 0; } Objeto::Objeto(int n) { std::cout << n << std::endl; u = n; } /*Objeto::Objeto(const std::initializer_list<char> &n) { std::initializer_list<char>::iterator it; std::cout << "Initializer (size = " << n.size() << "): "; for(it = n.begin(); it != n.end(); it++) std::cout << *it << ' '; std::cout << std::endl; u = 2; }*/ void Objeto::Imprimir() { std::cout << u << std::endl; }
Como habras observado el puntero instanciao apunta a un segmento diferente del resto