Witam.
Mam problem z małą gierką, którą sobie piszę.
Używam w niej dwuwymiarowych vectorów, które przesyłam potem do funkcji przez referencję - niestety, dla jednej z funkcji po wywołaniu zaliczam śliczny SIGSEGV - przynajmniej to sugeruje debuger.
Najpierw myślałem, że to przez operacje, które wykonuję na wektorach wewnątrz funkcji - jednak po zakomentowaniu całego jej wnętrza nadal mam identyczny problem. Będę wdzięczny, jeśli ktoś wskaże mi co robię źle. "newconio.h" to biblioteka do obsługi konsoli.
#include <iostream>
#include <cstdio>
#include <ctime>
#include <vector>
#include "newconio.h"
using namespace std;
typedef vector <vector <int> > vector2D;
enum fields {DEATH=0,CELL=1};
const int X_LONG = 73;
const int Y_LONG = 23;
/*
różne funcje
*/
vector2D next_move(vector2D& vect, vector2D& values, vector2D& next_board) //to ta problematyczna
{
/*
*/
}
main()
{
/*różne inicjalizacje*/
vector2D board(Y_LONG,vector<int>(X_LONG, DEATH));
vector2D values(Y_LONG,vector<int>(X_LONG, DEATH));
vector2D board2(Y_LONG,vector<int>(X_LONG, DEATH+3));
/*inne działania - board wypełniany jest zerami i jedynkami, values cyframi 0-9, board2 nie jest modyfikowane*/
next_move(board, values, board2); //crash
/*inne działania*/
return 0;
}
Środowiskiem moim jest Code::Blocks 10.05, kompilatorem GCC 4.4.1, a systemem operacyjnym - Windows 7 Home Premium 64-bit
Hmm... W sumie jak już piszę - jest jakiś sposób, żeby jakiejś globalnej stałej nadać losową wartość? Tzn przy starcie programu nadać jej wartość z przedziału (500,1500), a potem mieć pewność, że nie będzie w żaden sposób zmieniona?
I jeszcze jedna sprawa - można w jakiś sposób poprawić czytelność zawartości wektorów STL-a w debugerze z Code::Blocks? Bo teraz widać je jako
A chciałoby się mieć jakiś prosty wzgląd w ich zawartość, jak przy zwykłych tablicach na przykład.
PS Kurdę, napisałem temat i olśnienie nie przyszło... Do tej pory wystarczyło, że mając problem zaczynałem pisać temat na 4P, a zanim dotarłem do końcu pojawiało się rozwiązanie i nie musiałem się publicznie ośmieszać ;-(
PS2 Żeby się nie pogrążać nie wrzucałem całości kodu, bo wydawało mi się, że nie ma ona związku z tym, co się tu dzieje - jeśli się mylę, dajcie znać.
Z góry dzięki za pomoc i poświęcony czas. ;-)
Pozdrawiam,
Jadeszek