Wpis z mikrobloga

pisze program na sieci teleinformatyczne który jest prostym symulatorem przesylu danych, tj do kazdego pakietu danych musze dolaczyc (tutaj podstawowe informacje) tj nr pakietu i maxymalną ilosc pakietów + dane. Uzywam do tego struktury bo wymogiem jest zeby dane kazdego pakietu byly ulozone w pamieci zaraz obok siebie. Problem pojawia się gdy chce zrobic to dynamicznie tj miec mozliwosc wyboru wielkosci przesylanych pakietów, tworze w strukturze wskaznik na tablice a potem w konstuktorze wypelniam sobie tą tablice. Nie jest to poprawne rozwiązanie poniewaz dane nie są poustawiane w pamieci obok siebie. Jakies pomysly jak mozna to zrobic inaczej?
http://pastebin.com/4KBWCvCc
#programowanie #cpp
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@phatee93: Jeżeli dobrze zrozumiałem:
zaalokuj jebutną ilość pamięci, trzymaj wskaźnik na koniec danych, a dane z pakietów dopisuj do tej jebutnej części przesuwając wskaźnik. Wtedy Package->bytes będzie wskazywać na kolejne fragmenty jednego fragmentu
  • Odpowiedz
@phatee93: jeżeli chcesz mieć dane ciągiem w pamięci, to raczej nie masz innej opcji, niż zaalokowanie jej na raz i potem dopisywanie. Bardziej optymalnie, żeby nie alokować dużych ilości na raz, możesz zaalokować mało pamięci i robić realloc na więcej w razie potrzeby.
  • Odpowiedz