stworzenie mapy pokrycia GSM :)

0

Hej!
Mam taki problem. Chce w C++ zaymulować sieć GSM. Do tego celu chcę stworzyć mape predykcji radiowej. Nie wiem jak do tego sie zabrac bo mój kompilator nie pozwala mi stworzyć tablicy z milionem elementów, a tak własnie chciałbym podzielić obszartestowwy. i każdy punkt miałby kilka wartości (odbierany sygnał z kilku stacji bazowych, bo myśle ze bez sensu by było obliczać w trakcie symulacji, dla każdej stacji ruchomej moce odbierane z nadajników. Dlatego planuje, żeby na pozcątku stworzyć mape predykcji i potem na niej bazować w trakcie symulacji. Czyli problem sprowadza się do stworzenia takiej struktury, żebym mogl w niej przechowywać DUUUUUZE ilości danych. Ma ktoś jakiś pomysł???????????

pzodrawiam
juris

ps np. takiej tablicy int tablica[256][256][4]; nie moge stworzyc a mam XP2500, 256MB RAM a wcale nie wydaje mi sie zeby była ona jakas strasznie duza...
bo z tego co pamietam to sa 4B256256*4=524288B!!!!!!

0

zamiast tablicy uzyj listy dwukierunkowej... da ci to chyba o wiele większe możliwości w tego typu programie :0

0
  1. Ehm, no jakby nie liczyć to wychodzi 1048576 bajtów dla 4-bajtowego int-a...

  2. Co ty masz za kompilator, że nie możesz takiej tablicy zadeklarować? Dlaczego sądzisz w ogóle, że nie możesz takiej tablicy mieć? Może masz błąd w programie...?

0

(tablica trójwymiarowa? to coś takiego kompilator łyka?)

Gdyby nie szło zrobić tego w taki sposób, to może tak:

  • zarezerwować pamięć przez malloc() (albo inne temu podobne) w ilości ilość_elementów * wielkość_struktury,
  • przy odwoływnaiu się "udawać" że jest to tablica ilu-chcesz-wymiarowa poprzez odpowiednie indeksowanie

*(mem_ptr + x + y*MAX_X + z*MAX_X*MAX_Y)

a potem rzutować pobrany wskaźnik do pamięci tak żeby był on wskaźnikiem na twoją strukturę

GSM_STR *p = (GSM_STR*)...

0

yankesxx - i co dynamicznie na ta liste dodawac kolejne elementy? wiesz ile czasu będzie potrzba żeby potem znaleźć odpowiedni element? jak sie odwołać do dowolnego elementu??? to bym musiał być chyba kopiec binarny albo lista indeksowana. Wolałbym tutaj prostsze rozwiązanie. Nie wiem czemu nie przyjmuje mi kompilator takiej tablicy jak napisalem. Uzywam Visual C++ 6.0 i oczywiscie kompiluije, ale przy probie uruchomienia wywala błąd o overloaded wiec kiszka.
Marcinec - dzięki za sprostowanie mojej matematyki Bajtowej :) 4x4 to jednak 16 a nie 8....
BUCZ - a czemu miałby tego kompilator nie łykać?? mi sie zawsze zdawało ze nie ma ograniczeń na ilość wymiarów. Ale pomysł masz chyba dobry, możesz umieścić tu kawałek kodu z malloc jakbys to widział troche bardziej rozwinął swoją myśl bo nie znam tego :) będe wdzieczny.
pozdrawiam i dzieki wszystkim za próby pomocy :)
juris

1 użytkowników online, w tym zalogowanych: 0, gości: 1