
//
// To jest przykładowy kod z podrozdziału 18.5.2 "Wskaźniki i tablice" książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include "std_lib_facilities.h"

//------------------------------------------------------------------------------

// Nazwa tablicy odnosi się do wszystkich jej elementów.
char ch[100];
char* p = ch; // Zmienna p jest inicjowana wartością &ch[0].

//------------------------------------------------------------------------------

int main()
{
    //ch = new char [20];        // Błąd: nie można przypisywać do nazwy tablicy.
    //&ch[0] = new char [20];    // Błąd: nie można przypisywać do wartości wskaźnika.

    int x[100];
    int y[100];
    // ...
    //x = y;          // błąd
    //int z[100] = y; // błąd

    for (int i=0; i<100; ++i) x[i]=y[i]; // Kopiuje 100 liczb typu int.
    memcpy(x,y,100*sizeof(int));         // Kopiuje 100*sizeof(int) bajtów.
    copy(y,y+100, x);                    // Kopiuje 100 liczb typu int.

    // Aby móc przypisywać, należy użyć jakiejś struktury w rodzaju wektora.
    {
        vector<int> x(100);
        vector<int> y(100);
        // ...
        x = y;                           // Kopiuje 100 liczb typu int.
    }
}

//------------------------------------------------------------------------------
