Bonsoir,
j'ai un probl�me avec l'utilisation de std::streambuf. Apparemment, il travaille avec des char*, mais visiblement, j'ai du mal � g�rer la m�moire dans mon projet.
Admettons le code suivant:
Cette fonction est appel�e des millions de fois , la d�sallocation ne se semble pas se d�rouler correctement, ma m�moire RAM finit par saturer.. J'ai du oublier un d�tail.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 template <typename T> inline std::string read(std::ifstream& ifs, const T& offset, const T& size) { std::streambuf *pbuf = ifs.rdbuf(); char* contents = new char[size + 1]; pbuf->pubseekoff(offset, ifs.beg); pbuf->sgetn(contents, size); contents[size] = '\0'; std::string datas(contents); delete[] contents; delete pbuf; return datas; }
Merci d'avance pour vos r�ponses.
Partager