Ejemplo

int main(int argc, char* argv[])
{
long *Array = (long*) malloc(N * sizeof(long*));

long *Array = (long*) realloc(Array, N);

return 0;
}

Solución
Utilice el método sizeof() para asignar el número correcto de bytes.

int main(int argc, char* argv[])
{
long *Array = (long*) malloc(N * sizeof(long));

long *Array = (long*) realloc(Array, N * sizeof(long));

return 0;
}