Итак, я пишу эту программу клиент / сервер. Этот код со стороны клиента. У клиента есть экземпляр объекта
mpqs_sieve *instance_;
Причина, по которой я делаю это в качестве указателя, состоит в том, что mpqs_sieve имеет только конструктор, который принимает 3 аргумента, и я хочу создать его экземпляр в более поздний момент времени.
Клиент сначала получает некоторые данные с сервера и использует их для создания экземпляра instance_. После этого он запросит еще несколько данных и, получив их (это три коэффициента для квадратичного полинома), должен установить их в объекте instance_. Однако после вызова функции-члена instance_ я получаю нарушение прав доступа к одному из членов instance_ в рамках вызова этой функции.
Я разместил свой код здесь: на pastebin , и я получил ошибку в строке 100. Вызов поступил из строки 71 и до этой строки 21. Вот выдержка:
class client_protocol {
public:
static std::string parse_message(
network_message& msg, mpqs_sieve *instance_)
{
// ...
return set_mpqs_data(m.substr(i+1), instance_);
}
private:
static std::string set_mpqs_data(
std::string data, mpqs_sieve *instance_)
{
instance_ = new mpqs_sieve(n, M, FB_count);
// ...
}
};
Есть идеи, чтобы решить эту проблему?