elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Asignación de memoria en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Asignación de memoria en C  (Leído 3,891 veces)
Akkon

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Asignación de memoria en C
« en: 30 Abril 2011, 14:03 pm »

Hola. Soy nuevo en el foro así que disculpad si este no es el lugar indicado para mi duda.

El caso es que estoy desarrollando un programa en C en el que llevo trabajando meses y estoy teniendo un Segmentation fault muy molesto.

Con respecto a esto tenía la duda sobre si existe una máxima memoria que se pueda utilizar durante la ejecución del programa impuesta por el compilador o el sistema operativo y si hay alguna manera de aumentar esto.
Programo en Linux (ahora mismo Mint) y uso compiladores GCC o ICC.

Un saludo.


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Asignación de memoria en C
« Respuesta #1 en: 30 Abril 2011, 14:36 pm »

Hola y bienvenid@ al Foro

El segmentation fault casi seguro que te sale porque estás accediendo a una zona de memoria que no has reservado, porque eso de un máximo de memoria creo que el límite es tu ram, revisa el código y haz una traza para asegurarte de que no utilizas alguna variable a la que no le has reservado memoria.

Espero haberte sido de ayuda.

Saludos


En línea

Breakbeat como forma de vida
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Asignación de memoria en C
« Respuesta #2 en: 30 Abril 2011, 14:51 pm »

en 32 bits, en principio puedes tener problemas al reservar X cantidades.

Por otro lado, si estás en linux, el uso de debuggers como gdb, o herramientas como valgrind te pueden ayudar a encontrar el problema de una forma rápida y eficaz (sobretodo valgrind que te avisa de cualquier posible salto a una dirección no inicializada o erronea, memory leaks y seg faults).
En línea

Akkon

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Asignación de memoria en C
« Respuesta #3 en: 30 Abril 2011, 15:22 pm »

Muchas gracias a los dos por responder.

La cuestión es que mi programa es básicamente una simulación (que tengo implementada en una librería) y el programa principal es un barrido en dos parámetros. Tuve mucho cuidado en liberar toda la memoria que había asignado dinámicamente en la librería y de cerrar todos los archivos, al menos eso creo.

Encontré una función por internet que me calcula la memoria usada por el programa y lo que me extraña es que ésta va subiendo a escalones. Durante una serie de pasos  se mantiene constante pero en un paso aumenta. El máximo que me alcanza son unos 7 Mb lejos de los 4 Gb que tengo, por eso era mi duda si el compilador asignaba un máximo de uso.

Ahora estoy ejecutándolo con gdb. Traté de hacerlo con valgrind pero no entendía mucho sus mensajes.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Asignacion Dinamica Memoria
Programación C/C++
charmedever 5 3,426 Último mensaje 21 Octubre 2011, 05:25 am
por charmedever
Problema con asignación de memoria en puntero de caracteres.
Programación C/C++
1t4h1s4 9 4,905 Último mensaje 13 Febrero 2013, 02:58 am
por 1t4h1s4
asignacion dinamica de memoria
Programación C/C++
d91 2 2,253 Último mensaje 1 Junio 2014, 05:09 am
por Drewermerc
asignación dinámica de memoria y strcpy
Programación C/C++
m@o_614 3 2,631 Último mensaje 5 Junio 2014, 22:42 pm
por leosansan
Como puedo depurar un fallo de asignacion de memoria en C++??? « 1 2 3 4 »
Programación C/C++
kafok 37 13,139 Último mensaje 6 Diciembre 2014, 10:36 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines