Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Rò rỉ bộ nhớ trong MySQL C ++ Connector

như WhozCraig đã đề xuất, bạn có thể thêm delete Driver; vào chức năng kiểm tra của bạn nhưng tôi khuyên bạn nên sử dụng auto_ptr hoặc C ++ 11 unique_ptr hoặc shared_ptr cho mọi thứ MYSQL và bạn sẽ không bao giờ phải lo lắng về việc rò rỉ bộ nhớ

lấy ví dụ này

với C ++ 11

std::unique_ptr< sql::Connection > con( driver->connect("tcp://127.0.0.1:3306", "root", "root"));

hoặc C ++

std::auto_ptr< sql::Connection > con( driver->connect("tcp://127.0.0.1:3306", "root", "root"));

CHỈNH SỬA

bạn không thể chỉ delete Driver , tôi sẽ xem xét kỹ hơn khi có thời gian

CẬP NHẬT

Tôi đã xem qua driver.h mã nguồn, nó thực sự được bảo vệ protected: virtual ~Driver() {} vì vậy bạn không thể chỉ sử dụng xóa, bao giờ trong public: có hai

virtual void threadInit() = 0;

    virtual void threadEnd() = 0;

đó có thể là thứ bạn cần

cũng có ví dụ này điều này có thể rất hữu ích và thực hiện điều này hơi khác một chút thì bạn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách CHỌN dựa trên giá trị của một CHỌN khác

  2. MySQL chọn một cột DISTINCT, với các cột khác tương ứng

  3. Ví dụ về CURDATE () - MySQL

  4. Chèn và truy xuất hình ảnh vào mysql thông qua python

  5. Nhập công cụ Excel CSV