Executando verificação de segurança...
2

Nao sou o mais profissional no assunto mas posso dar uns pitacos.

primeiro que alocação de memória pode ser afetada pelo redirecionamento de entrada padrao em C devido a forma como a entrada é processada pelo programa ai eh quando a entrada é lida do console, o programa aloca espaço suficiente na memória para armazenar os dados de entrada conforme eles são lido. isso e pq o programa pode usar o mínimo possível de memória para armazenar os dados de entrada, já que ele só precisa alocar memória conforme necessário.

Ai vem o porem nesse role que é quando a entrada é redirecionada de um arquivo, o programa não tem como saber a quantidade de dados que serão lidos de antemão, pois claro que ele precisa alocar uma quantidade de memória suficiente para armazenar toda a entrada de uma só vez. Isso pode resultar em uma alocação de memória maior do que a necessária, já que o programa precisa reservar espaço para o pior caso.

e pode ser tbm que o próprio redirecionamento de entrada pode exigir mais recursos de memória do sistema operacional para manipular a entrada de arquivo. Isso pode fazer com que o programa utilize mais memória para gerenciar a entrada.

Resumindo essa bagaca toda ai deixando claro que a diferença na alocação de memória pode variar dependendo da implementação do programa e do sistema operacional. É possível que outros fatores estejam contribuindo para o aumento na alocação de memória que você observou.

Carregando publicação patrocinada...
1