#include <iostream>

struct A
{
    int size;
    int* array = new int[size]();   // array of 0-initialized ints

    A(int array_size = 10) : size(array_size) {}

    ~A() { delete [] array; }
};

void show_data(const A& a)
{
    std::cout << "For object of type 'A' at address " << &a ;
    std::cout << "\n\tsize = " << a.size;
    std::cout << "\n\tarray = " << a.array;
    std::cout << "\n\tarray contents:\n";

    for (unsigned i = 0; i < a.size; ++i)
        std::cout << "\t\t" << i << ": " << a.array[i] << '\n';

    std::cout << '\n';
}

int main()
{
    A a;
    show_data(a);

    A b(5);
    show_data(b);
}