Пример

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

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

return 0;
}

Решение
Использовать метод sizeof() для выделения правильного размера памяти в байтах.

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

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

return 0;
}