new creates an object dynamically, and delete releases it.

Dynamic Allocation

dynamic_allocation.cpp
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int start = ;
    int step = ;
    int* number = new int(start);

    *number += step;

    std::cout << "value=" << *number << std::endl;

    delete number;
    number = nullptr;

    std::cout << "released=" << (number == nullptr) << std::endl;
    return 0;
}
delete Every object created with `new` should be released with `delete` when it is no longer needed.