//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
// 
// Jest to główny plik projektu dla aplikacji VC++ wygenerowanej przy użyciu 
// Application Wizarda.

#include "stdafx.h"

#using <mscorlib.dll>
#include <tchar.h>

using namespace System;
__gc struct G {
   int i;
   G* next;
};

void f() 
{
   // pG to cały wskaźnik obiektu
   G *pG = new G;
   // ipi to wewnętrzny wskaźnik
   int __gc* ipi = &(pG->i);
   *ipi = 10;
   // ppG to wewnętrzny wskaźnik
   G** ppG = &(pG->next);
   // *ppG to cały wskaźnik obiektu
   *ppG = new G;
}

// Punkt wejścia dla aplikacji
int _tmain(void)
{
    // TODO: Proszę zastąpić poniższy kod przykładowy własnym kodem.
    Console::WriteLine(S"Witaj świecie");
	f();
    return 0;
}