[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

egcs & new



Qué tal...

El otro día estaba experimentando con C++ y la asignación de memoria...
cuando corro el programa que anexo, cuando se acaba la memoria marca un
"segmentation fault" y varias aplicaciones de GNOME que están corriendo
también marcan errores de segmentación... un problema bastante raro, yo
pensaba que el kernel de linux impedía que una aplicación afectara a las
demás.

Si en lugar de usar new uso malloc(), todo funciona perfectamente, tal
cual debe. No sé si sea error de egcs, mío, o del kernel, o una
combinación. A ver si me ayudan a aclarar esto.

-- 
  A human being should be able to change a 
  nappy, plan an invasion, butcher a hog, conn a 
  ship, design a building, write a sonnet, balance 
  accounts, build a wall, set a bone, comfort the 
  dying, take orders, give orders, cooperate, act 
  alone, solve equations, analyse a new 
  problem, pitch manure, program a computer, 
  cook a tasty meal, fight efficiently, die 
  gallantly. Specialisation is for insects. 
                -- Robert Heinlein

Juan Pablo Zaldívar Carrillo
ITESM Campus Guadalajara
al665901 en academ01 gda itesm mx
#include <unistd.h>
#include <stdlib.h>
#include <iostream>

int main()
{
  const int ONE_K = 1024;

  char *some_memory;
  int size_to_allocate = ONE_K,
      megs_obtained = 0,
      ks_obtained = 0;
 
  while (true) {
    for (ks_obtained = 0; ks_obtained < 1024; ks_obtained++) {
      some_memory = new char[size_to_allocate];

      if (some_memory == 0)
	exit(EXIT_FAILURE);
    }
    megs_obtained++;
    cout << "Now allocated " << megs_obtained << " Megabytes." << endl;
  }
  exit(EXIT_SUCCESS);
}

-- 
Para desuscribirse, mande correo a: ayuda-unsubscribe en linux org mx
Para comandos adicionales, envíelo a: ayuda-help en linux org mx


[Hilos de Discusión] [Fecha] [Tema] [Autor]