Código C++:
Ver originalint new_array_size = (array_size / 5) * 5 + 5; // El tamaño va a ir aumentando 5 en 5.
Si tu intención es aumentar el tamaño del array de 5 en 5 no es mas fácil hacer simplemente una suma??
Código C++:
Ver originalarray_size += 5; // El tamaño va a ir aumentando 5 en 5.
Y luego, en el algoritmo que incrementa el tamaño del arreglo estás trabajando el doble de lo necesario. Dado que tanto "array" como "new_array" son punteros dobles, es decir, la variable únicamente almacena una dirección de memoria, puedes copiar dicho valor de una variable a otra. No es necesario copiar dos veces la lista de elementos:
Código C++:
Ver originalif (size + 1 > array_size)
{
array_size += 5; // El tamaño va a ir aumentando 5 en 5.
Digit** new_array = new Digit*[array_size];
// Copiar los elementos del viejo array al array nuevo.
for(int i = 0; i < size; i++)
{
new_array[i] = array[i];
}
delete[] array; // Eliminar el antiguo array.
array = new_array; // Se copia el array.
}