C ++ Исключение с плавающей точкой с массивом глобального списка - PullRequest
0 голосов
/ 18 октября 2010

Я только начинаю, но у меня уже проблемы.Пока мой код просто:

(в Searcher.h)

#ifndef SEARCHER_H
#define SEARCHER_H

#include <string>
#include <list>
using namespace std;

class Searcher{

 public:
  Searcher( int& x );
  ~Searcher();

 private:
  int size;
  list<string> * lists;
};
#endif

(в Searcher.cpp)

#include "Searcher.h"
Searcher::Searcher (int& x){
  lists = new list<string>[x];
}

(в testSearcher.cpp)

#include "Searcher.h"
#include <iostream>
using namespace std;

int main (){
   Searcher * x = new Searcher(211);
}

Он компилируется, но когда я его запускаю, он выдает исключение с плавающей запятой.Я даже заменил х с 211 безрезультатно.Спасибо заранее за любую помощь.Кроме того, для любительской отладки я поместил оператор cout в конструктор перед инициализацией, и он напечатался нормально, а затем g ++ дал мне исключение с плавающей запятой.

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Разве это не должно быть:

Searcher::Searcher (int& x) {
    lists = new list<string>(x);
}

Я никогда не видел синтаксис, который вы опубликовали с [x].

0 голосов
/ 18 октября 2010

Попробуйте сделать параметр для Searcher "const int & x".

...