W języku C, czy poniższe są dobrze zdefiniowane?Zainicjować zmienną ze wskaźnikiem do tej zmiennej
void* ptr = &ptr;
void* array[1] = {array};
Innymi słowy, czy można użyć adresu zmiennej do zainicjowania tej zmiennej? Wydaje się działać z kompilatorem GCC, ale chcę tylko wiedzieć, czy jest to coś, na czym mogę polegać.
Edit: Jest to w zasadzie kopią Defining a pointer to refere to same variable name's reference?
Dlaczego myślisz, że może nie działać? Wygląda dla mnie legalnie. To tak jakby mieć ponumerowane pudełka zawierające ich własne liczby zapisane na kawałku papieru wewnątrz ... –
A może martwisz się, że zmienna nie ma adresu w czasie oceniania inicjalizatora? –
"Dobrze zdefiniowane" może rozciągać to, ale nie mogę niczego, co definitywnie mówi, że byłoby nieokreślone. 'void *' jest wyjątkowe, ale nie wiem, czy ta specjalność rozciąga się na 'void **'. –