Autor
|
Tema: Asignación de memoria en C (Leído 4,144 veces)
|
Akkon
Desconectado
Mensajes: 2
|
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
Mensajes: 301
Siempre aprendiendo
|
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
Mensajes: 823
|
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
Mensajes: 2
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Asignacion Dinamica Memoria
Programación C/C++
|
charmedever
|
5
|
3,781
|
21 Octubre 2011, 05:25 am
por charmedever
|
|
|
Problema con asignación de memoria en puntero de caracteres.
Programación C/C++
|
1t4h1s4
|
9
|
5,288
|
13 Febrero 2013, 02:58 am
por 1t4h1s4
|
|
|
asignacion dinamica de memoria
Programación C/C++
|
d91
|
2
|
2,506
|
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,945
|
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
|
14,423
|
6 Diciembre 2014, 10:36 am
por Eternal Idol
|
|