Dynamiczna alokacja tablicy w obiekcie w dynamicznie alokowanej tablicy obiektow;

0

Cześć,

Mam następujący problem, chciałbym zrobić alokowaną dynamicznie tablicę obiektów klasy, a następnie w każdym obiekcie w tablicy alokować tablicę charów, z czego każdy obiekt miałby różny rozmiar tablicy;
Jak to zrobić?

klasa wygląda +/- tak:

class Dane
{
public:
int rozmiar;
char * wartosc;

Dane()
{}

Dane(int roz)
{
this->rozmiar = roz;
wartosc = new char[rozmiar];
}

};

main +/- tak:

int main()
{
int liczbaDanych, rozmiar;

cin>>liczbaDanych;

Dane* tablica = new Dane[liczbaDanych];

for (int i = 0; i<liczbaDanych ; ++i)
{
cin>>rozmiar;
tablica[i] = Dane(rozmiar);
}

return 0;
}
1

Przecież podany przez Ciebie kod właśnie to robi.

0

Podaj cały kod, bo póki co to widzę jedynie, że modyfikujesz zmienną wewnątrz pętli (i).

0

Nie możesz użyć std::vector ?

1
class Data
  {
   private:
   size_t size;
   char *data;
   public:
   void Swap(const Data &d) { swap(size,d.size); swap(data,d.data); }
   Data(size_t size=0):size(size),data(new char[size]) {}
   Data(const Data &d):size(d.size),data(new char[size]) { memcpy(data,d.data,size); }
   Data &operator=(const Data &d) { Data tmp(d); Swap(tmp); }
   ~Data() { delete[] data; }
   char &operator[](size_t pos) { return data[pos]; }
  };

int main()
  {
   size_t count,size;
   cin>>count; 
   Data **tb=new Data*[count]; 
   for(int i=0;i<Count;++i)
     {
      cin>>size;
      tb[i]=new Data(size);
     }
   for(int i=0;i<Count;++i) delete tb[i];
   return 0;
  }

lub:

   size_t count,size;
   cin>>count; 
   vector<vector<char> > tb(Count);
   for(int i=0;i<Count;++i)
     {
      cin>>size;
      tb[i]=vector<char>(size);
     }
0

karolinaa niestety nie;

już znalazłem błąd okazało się że zrobiłem literówkę w kodzie i odwoływałem się do niewłaściwej zmiennej, już wszystko działa, dziękuję wszystkim za pomoc ;)

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