Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wskaźnik będący NULL em

Ostatnio zmodyfikowano 2017-03-23 21:18
Autor Wiadomość
wer182
Temat założony przez niniejszego użytkownika
Wskaźnik będący NULL em
» 2017-03-23 18:04:40
O co chodzi z tym Nullem? Wiem tyle że jeżeli wskaźnik jest Nullem to nie można z niego odczytywać ani do niego zapisywać. Ale co to znaczy że jest Nullem ?  Czy to że adres na który wskazuje wskaźnik jest równy 0, Czy adres wskaźnika jest równy 0.
P-159284
carlosmay
» 2017-03-23 18:09:59
Do wskaźnika jest przypisany adres o wartości
NULL
 (czyli
0
).
P-159285
Bielan
» 2017-03-23 19:21:24

Do wskaźnika jest przypisany adres o wartości NULL (czyli 0).

NULL
 jest to makro rozwijane do wartości zależnej od implementacji. Wartość ta to stała o charakterze 'nullowego' wskaźnika konwertowalna niejawnie do dowolnego typu wskaźnikowego, na wartość wskaźnika 'nullowego' danego typu.

W standardzie C++11 dochodzi literał
nullptr
.

Jak to jeść? Wartość NULL w danym wskaźniku oznacza, że wskaźnik nie pokazuje na nic konkretnego. Dlatego 'nic konkretnego' nie można odczytać. Oczywiście kompilator pozwoli na taką akcję ale wynik dostępu do wskaźnika czy wyłuskania jest niezdefiniowany.
P-159294
mokrowski
» 2017-03-23 21:18:34
Dodatkowo standard gwarantuje poprawne wywołanie delete na takim wskaźniku. Często wskaźnik na NULL jest wykorzystywany w implementacji typu opcjonalnego. Sygnalizuje to przy małym koszcie (brak rzucania wyjątkiem, zwracania wartości "magicznej" wykorzystywane nagminnie w C lub sygnalizacji innymi drogami) brak zwróconej sensownej wartości z jednostki kodu.
Dodatkowo nullptr posiada zdefiniowany (od C+11) dedykowany typ nullptr_t który umożliwia poprawną implementację polimorficznych wywołań.
P-159299
« 1 »
  Strona 1 z 1