2017-01-06 2 views
0

Я пытаюсь играть со списками и создавать список списков, содержащих целые числа. После я запускаю код этого thorws плохого исключения Alloc:std :: bad_alloc при объявлении списка C++

«aterminate вызывается после выбрасывания экземпляра„станд :: bad_alloc“ , что(): станд :: bad_alloc

Этого приложение просило Runtime чтобы прекратить его необычным способом. Для получения дополнительной информации обратитесь в службу поддержки приложения. "

#include <iostream> 
#include <list> 
#include <string> 

int main() { 
    std::list<int> l{1,2,3,4};// 
    std::list<int> l1{5,6,7,8}; 
    std::list<std::list<int>> ll;// list of lists<int> 
    std::cout << "a"; //does not reach here, terminated before this row 
    ll.push_back(l); 
    ll.push_back(l1); 
    std::list<std::list<int>>::iterator itr; 
    for (itr=ll.begin(); itr != ll.end(); itr++) 
    { 
     std::list<int>tl=*itr; 
     std::list<int>::iterator it; 
     for (it=tl.begin(); it != tl.end(); it++) 
     { 
      std::cout<<*it; 
     } 
     std::cout<<std::endl<<"End"<<std::endl; 
    } 
    return 0; 
} 

Я запускаю его в Clion на Windows 10 с minGW. Как я могу это исправить? все кажется правильным.

+5

[Работы здесь] (http://coliru.stacked-crooked.com/a/e6eabec99e96e2e7) – NathanOliver

+1

Это работает с Visual Studio 2015. –

+0

Я подозреваю, что это связано с http://stackoverflow.com/questions/20621639/stdendl-crashes-windows-8-compiled-using-mingw или http://stackoverflow.com/questions/11975941/simple-program -crashes, где стандартная библиотека 'cout' /' endl' ha d некоторая несоответствие библиотеки ABI. –

ответ

0

Я скомпилировал код внутри Visual Studio 2015. Ваш код скомпилирован без ошибок, а результат был следующим.

a1234

Конец

Конец

+0

Привет и приветствуем переполнение стека. Пожалуйста, добавьте код. Как есть, трудно сказать, в чем проблема –

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