I want to implement a dynamic array as a class.
I haven written a method which adds an element at the end of the array:
void DynamicArray::addElementAtEnd() {
    cout << "\nPodaj liczbe calkowita: ";
    int* number = new int;
    cin >> *number;
    if (DynamicArray::array == NULL) {
        DynamicArray::array = new int[1];
        DynamicArray::array[0] = *number;
        delete number;
        (*DynamicArray::size)++;
        return;
    }
    int* buff = new int[*DynamicArray::size + 1];
    memcpy(buff, DynamicArray::array, (*DynamicArray::size) * sizeof(int));
    delete[] DynamicArray::array;
    buff[(*DynamicArray::size)] = *number;
    DynamicArray::array = buff;
    (*DynamicArray::size)++;
    delete number;
    return;
};
Here's the .h file of the DynamicArray class:
#include <iostream>
using namespace std;
class DynamicArray {
public:
    int* array;
    int* size;
public:
    DynamicArray() {
        DynamicArray::size = new int;
        *DynamicArray::size = 0;
    };
    void handleMenu();
    void readFromFile();
    void addElementAtEnd();
    void addElementAtBeginning();
    void addAtIndex(int index);
    void deleteElementAtEnd();
    void deleteElementAtBeginning();
    void deleteElementByIndex(int index);
    void showAllElements();
    void showElementAtIndex(int index);
    void findElementByValue(int value);
};
The problem is that this method adds only the first element, but if I try to add more then nothing happens. I debugged it, and the problem starts on this line:
int* buff = new int[*DynamicArray::size + 1];
I don't know why, but it seems like this line is not creating a bigger array.
I searched for some solutions, and it seems that the problem is connected with using *DynamicArray::size + 1 instead of eg a variable, or I don't do something right with it.
 
     
     
    