// new y delete: un objeto, y un arreglo. Cada new con su delete del mismo tipo.
#include <cstddef>
#include <iostream>
#include <string>

int main() {
    int* one = new int(7);
    std::string* name = new std::string("pila");
    std::cout << *one << " " << *name << " " << name->size() << "\n";
    delete one;
    delete name;

    std::size_t n = 4;
    int* zeros = new int[n]();
    std::string* words = new std::string[n];
    words[1] = "hola";
    std::cout << zeros[3] << " [" << words[0] << "] [" << words[1] << "]\n";
    delete[] zeros;
    delete[] words;

    int* nothing = nullptr;
    delete nothing;
    std::cout << "delete de nullptr: no hace nada\n";
    return 0;
}
