ID zamiast wskaźników - o co chodzi

0

Witam,
czytam sobie ten poradnik: http://asawicki.info/Download/Productions/Lectures/IGK2011_Dabrowski_Sawicki_slides.pdf
I na 41 stronie autor sugeruje, by używać ID zamiast wskaźników.
Później na stronie 43 pokazuje następujący przykład:

//ŹLE
struct Object
{
float4 position;
std::string name;
Object * parent;
Material * material;
};
//DOBRZE:
struct Object
{
float4 position;
char name[32];
uint32_t parentID;
uint32_t materialID;
};

A moje pytanie brzmi: o co chodzi z tym ID? Jak to wykorzystać zamiast wskaźnika? Powiedzmy, że mam tablicę jakiś obiektów - to jaka jest różnica przechowywać wskaźnik i odnosić się bezpośrednio do takiego elementu od wskazania na niego poprzez nr ID (bo rozumiem, że o to chodzi?!?)?
Z góry dziękuję za pomoc.

0

Pomysł jakis dziwny, a jedyny plus jaki widzę to taki że wskaźnik można przypadkiem przypisać do czegoś bez sensu i potem masz trudne do wykrycia błędy typu nadpisanie sterty czy stosu. Jak trzymasz sobie te ID i wyciągasz z jakiegoś service locatora to możesz tam zawsze sprawdzać czy id jest poprawne i pokazuje na sensowny obiekt. W efekcie wykryjesz błąd od razu ;]

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