zwracanie dynamicznych struktur z funkcji

0

Witam pisze w sprawie problemu z tablicami dynamicznymi. Sytuacja wygląda tak:

mam funkcję przed mainem typu wektor. Wektor jest zadeklarowany jako klasa

class wektor{
     private:
     public:
     double liczba;
     int wartosc;
     };

wektor iloczyn(wektor *A, wektor *B){

int x=rozmiar(A); // tutaj podaje wymiar wektora który powstaje z iloczynu
wektor *Z;
Z = new wektor[x];




 for(int i=0; i<x; i++){
 if(A[i].liczba<B[i].liczba) {
                            Z[i].liczba = A[i].liczba;
                            Z[i].wartosc = 1;
                            }
 else {
                            Z[i].liczba = B[i].liczba;
                            Z[i].wartosc = 1;
                            }
}

return *Z;
};

i teraz w mainie używam tej funkcji i chce wyświetlić iloczyn tych dwóch wektorów:

      wektor *C;                             //tworze nowy wektor
 C = new wektor[10];                 // wartość 10 jest const zeby nie dodawac tu wiecej kodu
     *C = iloczyn(A,B);                // wskaznik wektora ma wskazywać wektor powstały z iloczyni

 potem drukuje ten wektor

  for(int i=0; i<10; i++){
cout << C[i].wartosc ;
cout << "  ";
cout << C[i].liczba <<endl;
                 };

i drukuje sie tylko pierwsza współrzędna wektora tj C[1] a reszta to zera (tj puste miejsca w pamięci)

nie potrafie sobie poradzić z tym przekazywaniem wskaźnika z funkcji tak aby za pomocą funkcji działać na wektorach, co jest bardzo potrzebne w moim projekcie.

Będe bardzo wdzięczny za pomoc

0

int x=0;
Z = new wektor[x];

Co to ma być? Zeroelementowa tablica ma jeden bajt, aż dziw bierze, że to się nie wysypuje.

0

nie potrafie sobie poradzić z tym przekazywaniem wskaźnika z funkcji tak aby za pomocą funkcji działać na wektorach

byles dosc blisko..

class wektor{....};

wektor * iloczyn(wektor *A, wektor *B) // zwracasz wektor-GWIAZDKA, a nie pojedynczy wektor
{
...
Z = new wektor[x];  //poniewaz tutaj WYNIK ktory tworzysz, jest typu wektor[N], czyli wektor*, a nie wektor
...
return Z;   //i zwracasz ow wektor*, a nie *Z czyli jeden li tylko pierwszy element!!
};

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