| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
javikey
Registrado: 12 Mar 2007 Mensajes: 2
| Publicado: 05/05/2007 5:27 am | | | Título: como dar mas tamaño a una constante, ayuda!! |
| Hola!!
A ver si alguien me puede ayudar resulta que tengo definida una constante con un valor de 1000 y luego esa constante va a ser la dimension de unos vectores que a su vez están dentro de unas estructuras.
Cuando compilo el programa no tengo ningun fallo, pero a la hora de ejecutarlo en windows se queda la pantalla de consola en negro y da un error. Si le paso el depurador me sale un mensaje de error que dice algo asi como : violacion de acceso a memoria.
Si alguien es tan amable de decirme si hay que configurar alguna opción en el entorno dev c++ o hacerlo de alguna manera, ya que con el valor de 1000 en linux no da ningun problema. Os pongo un ejemplo de las cosas:
#define MAXIMO 1000
typedef struct{ int restr [JORNADA][SEMANA]; int carg; int pref[MAXIMO]; }Ttrab;
------------
int main(int argc, char *argv[]) {
Ttrab trabajador[MAXIMO];
--- etc....
Si en lugar de 1000 le pongo 100, 200, etc funciona sin problemas, es como si le faltase memoria.
un saludo gracias |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 3841 Ubicación: Mexico
| Publicado: 05/05/2007 7:04 am | | | Título: |
| Lo primero que debes hacer es asegurarte de que esa es la causa del error ya que los errores de violacion de segmento, "Invalid page fault" y similares son causados por un mal manejo de memoria.
Si el error es causado por esa declaracion de array lo que puedes hacer es, en lugar del array, reservar la memoria mediante malloc/calloc/realloc.
Otra opcion es revisar la documentacion del compilador para saber si es posible modificar el tamaño del stack ya que es ahi donde se almacenan las variables locales.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |