2010-10-18 2 views
0

Я только начинаю, но у меня уже проблемы. До сих пор, мой код просто:Исключение с плавающей запятой C++ с глобальным массивом списков

(В 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); 
} 

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

+1

Пожалуйста, разместите полный код, а не фрагмент. Вышеприведенный код не вызывает исключения, хотя у него есть своя доля проблем. –

+0

Извините, я сделаю это. – Robert

+0

@Robert - отредактируйте вопрос, не публикуйте код в комментарии –

ответ

0

Попробуйте ввести параметр Searcher "const int & x".

0

Если это не будет:

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

Я никогда не видел синтаксис, который размещен с [х].

Смежные вопросы