Tag Archive for 'Memory Leaks'

Clase Lista simple para C++

Tal como publiqué hace algunos días la Clase String Simple para C++ como un ejercicio de aprendizaje de C++, ahora estoy liberando una Clase Lista simple para C++.

La librería standard tiene una clase list. Pero, mientras se está aprendiendo, es una buena idea saber cómo poder desarrollar tu propia clase list.

Esa es la razón por la que hice la clase List. No está pensada para proyectos profesionales (para ellos, deberías utilizar la list de la librería standard), sino como una ayuda para aprender C++.

template <class TYPE>
class List
{
	/* ... */

public:
	//Construction and destruction
	List() { /* ... */ }
	~List() { /* ... */ }
	
	List(const List& rlList) { /* ... */ }
	
	//Assignment operator
	List& operator=(const List& rlList);

	//Information
	int Length() { /* ... */ }
	bool Empty() { /* ... */ }

	//Element managing
	int Add(TYPE& rtData);
	TYPE* Elem(int nPos);
	bool Delete(int nPos);
	void DeleteAll();
	
	//Search
	int Find(TYPE& rItem, int nStartAt = 0);

	//Operadores
	TYPE& operator[](int nPos) { /* ... */ }	//Elem
	int operator<<(TYPE& rdData) { /* ... */ }	//Add

protected:
	void FreeList();
	void Init() { /* ... */ }
};

//Output
template <class TYPE>
std::ostream& operator<<(std::ostream& oStream, List<TYPE>& rlList);

Seguir leyendo…

Incoming search terms for the article:

cppMemDbg – Librería fácil de usar de detección de fugas de memoria para C++

Esta librería es la secuela para C++ de cMemDbg.

Tal como cMemDbg, es una librería muy fácil de usar que sirve para ayudar a detectar y trazar fugas de memoria (memory leaks).

Su utilización es muy similar a la cMemDbg, pero con soporte para los operadores de C++ (new, new[], delete and delete[]).

Hay muchas soluciones para esto en la red, pero esta tiene la particularidad de ser realmente simple de implementar.

>new  003D26D8  36  [Main.cpp:127]
>new  003D2708  36  [Main.cpp:128]
>ERROR  Bad free type  free => delete  003D2708  36
(Main.cpp:128)
>free  003D2708  36  (Main.cpp:128)  [Main.cpp:129]
>free  003D2708  0    [Main.cpp:130]
>ERROR  Trying to free unallocated memory: 003D2708
[Main.cpp:130]
>delete[]  003D3EB0  7  (String.cpp:59)  [String.h:41]
[...]
>delete[]  003D24F0  4  (String.cpp:59)  [String.h:41]
>delete  003D2490  40  (Lista.h:120)  [Lista.h:112]
>INFO  PROBLEM: Memory leak found (36 bytes)
>INFO  Unfreed block  003D26D8  36    [Main.cpp:127]

Keep reading…

Incoming search terms for the article:

cMemDbg – Librería fácil de usar de detección de fugas de memoria para C

Después de algún tiempo de trabajar con C, decidí desarrollar una librería muy fácil de usar que pudiera ayudar a detectar y trazar fugas de memoria (memory leaks).

Hay muchas soluciones para esto en la red, pero esta tiene la particularidad de ser realmente simple de implementar.

Seguir leyendo…

Incoming search terms for the article: