Estaba tratando de averiguar cuánta memoria puedo malloc al máximo en mi máquina (1 Gb RAM 160 Gb plataforma HD Windows).memoria máxima que malloc puede asignar
He leído que la memoria máxima que malloc puede asignar está limitada a la memoria física (en el montón).
También cuando un programa excede el consumo de memoria a un cierto nivel, la computadora deja de funcionar porque otras aplicaciones no obtienen la memoria suficiente que requieren.
Así confirmar, escribí un pequeño programa en C:
int main(){
int *p;
while(1){
p=(int *)malloc(4);
if(!p)break;
}
}
Tenía la esperanza de que habría un momento en que la asignación de memoria fallaría y el bucle se rompería, pero mi equipo colgado como lo fue un bucle infinito
Esperé durante aproximadamente una hora y finalmente tuve que forzar apagar mi computadora.
Algunas preguntas:
- ¿Se malloc asignar memoria del HD también?
- ¿Cuál fue el motivo del comportamiento anterior?
- ¿Por qué no se rompió el lazo en algún punto del tiempo?
- ¿Por qué no hubo ninguna falla de asignación?
De todos modos, ¿por qué malloc (4), y por qué no malloc (4096), o malloc (8192), o más? –
por supuesto puede ser cualquier cosa que sea múltiple de sizeof int. ¿No es así? – Vikas
[no arroje el resultado de malloc en C] (http://stackoverflow.com/q/605845/995714) –