A função malloc () geralmente aloca a memória virtual da memória heap . Mesmo que você não tenha especificado um sistema operacional nem uma linguagem de programação nem uma versão da biblioteca de tempo de execução, assumirei que sua versão de malloc () não aloca memória física. Portanto, adicionar mais memória física ou aumentar o espaço de troca pode não eliminar o erro de falta de memória que você vê em malloc ().
Para uma solução, você precisa determinar se o seu programa está excedendo a quantidade de memória (virtual) alocada ou se o sistema está realmente ficando sem páginas de memória. "Quando o Linux fica sem memória" (ou esta cópia ) explica como malloc () aloca memória (virtual), as duas maneiras de obter uma condição de falta de memória e como determinar qual. Observe que a disponibilidade de páginas de memória é uma combinação complexa de tamanho de memória física, tamanho de espaço de troca, uso de memória e carga de processo.