Я пытался добавить строку в конец вектора вектора строк и как-то столкнулся с проблемой памяти.добавление строк к вектору вектора
мой код что-то похожее на это
vector<vector<string>> slist;
....
slist.push_back(vector1);
slist.push_back(vector2);
...
for(int i=0; i<10; i++){
int length = slist.size()-1;
slist[length].push_back("String"); // also tried slist.back().push_back("S");
}
И это, как некоторые дает мне проблему памяти
Invalid read of size 8
==2570== at 0x404D18: std::vector<std::string, std::allocator<std::string> >::push_back(std::string const&) (stl_vector.h:735)
==2570== by 0x403956: main (asm.cc:400)
==2570== Address 0xfffffffffffffff0 is not stack'd, malloc'd or (recently) free'd
==2570==
==2570==
==2570== Process terminating with default action of signal 11 (SIGSEGV)
==2570== Access not within mapped region at address 0xFFFFFFFFFFFFFFF0
==2570== at 0x404D18: std::vector<std::string, std::allocator<std::string> >::push_back(std::string const&) (stl_vector.h:735)
==2570== by 0x403956: main (asm.cc:400)
==2570==
Может кто-нибудь сказать мне, почему ??
PS: жаль предыдущий плохо задаваемый вопрос ..
'slist.back()' лучше, но нам нужен SSCCE. Я не верю, что вы указали правильный код. – chris
"Проблема с памятью"? Какая проблема памяти? Какую ошибку вы получаете? Вы показали нам код, который мы не можем использовать для воспроизведения проблемы, и сказали, что вы получили сообщение об ошибке, не сообщив нам, какая ошибка это *. *. Самый конкретный ответ, который я могу дать при таких обстоятельствах, - «возможно, есть способ заставить ваш код работать» – jalf