Resize method in c++ for arrays

#include <iostream>

template <typename T>
void resizeArray(T*& array, size_t oldSize, size_t newSize) {
    T* newArray = new T[newSize];
    size_t copySize = (oldSize < newSize) ? oldSize : newSize;

    for (size_t i = 0; i < copySize; ++i) {
        newArray[i] = array[i];
    }

    delete[] array;
    array = newArray;
}

int main() {
    const size_t initialSize = 5;
    int* myArray = new int[initialSize];

    // Initialize the array with some values
    for (size_t i = 0; i < initialSize; ++i) {
        myArray[i] = i;
    }

    // Print the original array
    std::cout << "Original Array: ";
    for (size_t i = 0; i < initialSize; ++i) {
        std::cout << myArray[i] << " ";
    }
    std::cout << std::endl;

    // Resize the array to a larger size
    const size_t newSize = 8;
    resizeArray(myArray, initialSize, newSize);

    // Print the resized array
    std::cout << "Resized Array: ";
    for (size_t i = 0; i < newSize; ++i) {
        std::cout << myArray[i] << " ";
    }
    std::cout << std::endl;

    // Clean up the allocated memory
    delete[] myArray;

    return 0;
}