Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - Neuromante

#1
Bueno, por si a alguien le interesa, es algo bastante lógico si sabes de que va el asunto pero no tanto si no tienes mucha experiencia:
El Leak detector de VC++ detecta perfectamente los espacios de memoria que no se han borrado en el sitio en el que llamas a la función _CrtDumpMemoryLeaks(), si lo pones al final de la función main() (como hice yo) y tienes alguna variable estática con componentes dinámicos (una pila, por ejemplo), al llegar a la llamada a _CrtDumpMemoryLeaks() se encontrará con que la destructora de la variable estática todavía no se ha ejecutado -ya que al ser estática se ejecuta al final- y te dirá que hay un leak de memoria, aunque realmente al cerrar el programa se ejecute la destructora y tal leak no exista "al final". Lo he solucionado convirtiendo la variable en dinámica y haciendo un delete de esta antes -si no borraba algo, _CrtDumpMemoryLeaks() lo detectaría ya que con el delete he llamado antes a la destructora de la variable-.

Pues eso, que a mi me ha costado algo averiguar por que pasaba esto, al menos si alguien lo lee, que se ahorre el tiempo de investigación ;)
#2
Coña, si que ha servido buscar "visual c++ leak detectors":

http://msdn2.microsoft.com/en-us/library/x98tx3cf(VS.80).aspx

Ahroa solo espero que esto sea lo que estoy bsucando y no haya metido la gamba ^^u, aunque a todas luces para que el propio visual c++ lo tiene de serie :P

Cita de: "1cacalvo"
De todas formas en Visual C++, como norma un delete por cada new...

Ya.. se hartaron de decírnoslo en clase, pero cuando te estás definiendo, por ejemplo, una pila con memoria dinámica (o algún tipo de clase de la que no sabes a ciencia cierta cuantos news vas a hacer) entonces es cuando los punteros empiezan a bailar danzas africanas.. (si lo sabré yo.. que diver es que una destructora no te funcione el día de entrega -.-)
#3
ooook, gracias por las respuestas!
Probaré a buscar por "leak detectors" a ver si hay algo de suerte, que este fin de semana lo he dejado abandonado..

Sobre el borland gratuíto estoy pensando en comentarlo en mi facultad, por eso de que es un COÑAZO usar una versión antigua de un programa de pago simplemente porque pasan de actualizarla y no tienen pelas para pagar la nueva versión (historia real -.-)

Un saludo!
#4
Buenas! Hará cosa de 4 días que me pasaron esta web (curiosamente por un par de viñetas de humor) y me he decidido a registrarme, que parece que por aqui hay mucha gente que de esto sabe.

Bueno, estoy estudiando la técnica de sistemas de informática, y después de sacarme la "asignatura-anual-de-programación-en-c++", A.K.A. la cometiempo, me he decidido a aprender a programar de verdad xD.

El caso es que en la asignatura esta horrible usábamos el Borland C++ Builder 5. Éste tenía una chorradita muy mona para vigilar que no hicieras el cafre con los news y deletes (el codeguard). Bastante útil para tomar contacto, la verdad.
El caso es que estoy empezando a hacer un proyectillo chorra por mi cuenta y pasaba de usar el borland por temas legales -ya que voy a programar, pues al menos lo hago con licencia- y me bajé el Visual C++ Express de Microsoft, que es como que gratis. Me hice una pila usando memoria dinámica (Si, se que están ya hechas, pero por aprender más que nada) y cual fue mi sorpresa al ver que hacer un new sin un delete después no llevaba a error (pero si hacer dos deletes sobre la misma variable).
Entonces, el caso es que no se si Visual borra los objetos creados dinámicamente de manera automática al final del programa, que no te avisa o qué, aparte que he buscado alguna opción que sonara como el codeguard y no he encontrado nada por ningún lado (me han comentado que hay plugins que añaden una opción similar, pero no se ni por donde empezar, la verdad :?)

La pregunta-resúmen de toda esta parrafada es cortital: ¿Existe algún equivalente al CodeGuard -que no sea "tener cuidado" xD- en el visual C++ o mejor me cambio de API?

Gracias adelantadas, y un saludo!





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.