CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Kopiowanie dynamicznej tablicy

Kopiowanie dynamicznej tablicy

dział ogólny

Kopiowanie dynamicznej tablicy

Nowy postprzez oneiro » wtorek, 10 września 2013, 22:51

Witam,

Mam strukturę, w skład której wchodzą m. in. dynamiczne tablice 1D oraz 2D - jest to zbiór opisujący jeden element.
KOD cpp:     UKRYJ  
//Plik h
struct SParametry
{
double //rezultat
        S0,S1,S2,S3,S4,S5,S6,S7,S8,
        x0,x1,x2,x3,x4,
        //WYMIAROWE
        Iy1,Iy,Iz,It,
        Io,Io1,Io2,Io3,Io4,Io5,Io6,
        A1,A2,A3,A4,A5,A6,A7,
        z0,zc_zb,
        //BEZWYMIAROWE
        f0,f1,f2,f3,f4,
        Iy1_,Iy_,Iz_,zc_,It_,
        Io_,Io1_,Io2_,Io3_,Io4_,Io5_,Io6_,
        A1_,A2_,A3_,A4_,A5_,A6_,A7_,
        z0_,
        Apole_,
....
.....
Engine *ep;
double tab_sect_prop[17]; //A,xcg,zcg,Ixx,Izz,Ixz,thetap,I11,I22,J,Xs,Ys,Cw,B1,B2,w
double tab_mat[6]; //mat[0], ex[1], ey[2], vx[3], vy[4], gxy[5]
double **tab_nod;
double **tab_ele;
double *tab_len;
double tab_opt_step[10];
};
extern SParametry Param;
 


Chciałbym teraz utworzyć tablicę takich elementów (typu SParametry).
KOD cpp:     UKRYJ  
//Unit1.cpp
#include unit1.h

SParametry *Wyniki;
Wyniki = new SParametry [Ilosc];
 


Potem jest pętla uruchomiona "Ilosc" razy obliczająca zmienną Param (za każdym razem mogą być inne rozmiary tab. dynamicznych wewnątrz Param)
Rozumiem, że w pętli takie coś nie zadziała (chodzi o tab. dynamiczne wewnątrz struktury):
KOD cpp:     UKRYJ  
Wynik[zmienna_inkrementalna]=Param;
 


Jak najłatwiej skopiować te dane do nowej tabeli?

Pozdrawiam, Krzysiek
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPChrome

Re: Kopiowanie dynamicznej tablicy

Nowy postprzez polymorphism » środa, 11 września 2013, 09:45

A po co obliczenia robisz na globalnej(why?) Param, skoro możesz robić to od razu na konkretnym elemencie tablicy?

Generalnie tego typu struktury powinny mieć zdefiniowany operator przypisania i konstruktor kopiujący:
KOD cpp:     UKRYJ  
struct SParametry
{
        ...

        SParametry(const SParametry &obj)
        {
                // niezbędna inicjalizacja pól klasy

                *this = obj;
        }
       
        SParametry& operator=(const SParametry &obj)
        {
                // kopiowanie danych, tworzenie duplikatów tablic
                return *this;
        }
       
        ...
};



p.s. w C++ nie korzysta się ze struktur, ponieważ są od tego klasy. struct jest tylko po to, żeby zachować zgodność z językiem C.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Kopiowanie dynamicznej tablicy

Nowy postprzez oneiro » środa, 11 września 2013, 18:41

O kurde, zabiłeś mnie. Możesz coś więcej napisać, obiektowość to nie jest moja silna strona...
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPChrome

Re: Kopiowanie dynamicznej tablicy

Nowy postprzez polymorphism » środa, 11 września 2013, 18:53

A co tu więcej pisać? Jeśli chcesz poznać temat dogłębnie, odsyłam do jakiejś literatury.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 25 gości

cron