Я пытаюсь использовать MySQL C++ Connector для подключения к базе данных. Я добавил библиотеки, и исходный код правильно компилируется со всеми необходимыми операторами #include. Код, который я использую, является следующим:MySQL Connector C++ - Invalid Pointer
#include <stdlib.h>
#include <iostream>
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
using namespace std;
int main(void)
{
using namespace sql;
Driver *driver;
Connection *con;
driver = get_driver_instance();
con = driver -> connect("tcp://127.0.0.1:3306/test", "test", "test");
}
Код взят из примеров и должен работать должным образом. Я значительно сократил код, так как он находится на финальной строке «driver -> connect», где возникает ошибка. Мое сообщение об ошибке является следующее:
*** glibc detected *** /home/username/NetBeansProjects/mysql/dist/Release/GNU-Linux-x86/mysql:
free(): invalid pointer: 0x091dd468 ***
Я на Linux Mint Лиза, работает под управлением последней версии MySQL и с помощью NetBeans 7.1 в качестве IDE. Как уже упоминалось, код компилируется правильно, и он находится на этой последней линии соединения, где происходит ошибка. Любая помощь или рекомендации для другого механизма подключения будут высоко оценены.
UPDATE
Вот код из класса Driver, где соединение определяется
class CPPCONN_PUBLIC_FUNC Driver
{
protected:
virtual ~Driver() {}
public:
// Attempts to make a database connection to the given URL.
virtual Connection * connect(const sql::SQLString& hostName, const sql::SQLString& userName, const sql::SQLString& password) = 0;
virtual Connection * connect(ConnectOptionsMap & options) = 0;
...
Ничего увидеть там ... по моему скромному мнению ...
Это выглядит так, как будто какая-то память была free'd, а затем попыталась быть free'd снова, но терпит неудачу, потому что он больше не выделяются. Cant действительно скажите по коду, который вы опубликовали, можете ли вы опубликовать остальную часть или поместить ссылку на код примера? – TomP89
Это все код! Я выложу код со страницы с помощью драйвера -> connect, но это приходит прямо из команды разработчиков MySQL Connector, поэтому я сомневаюсь, что она будет содержать ошибку: /. –
Является ли 'get_driver_instance' ваш код или является частью Connector? Если он принадлежит вам, отправьте _that_. – ildjarn