Wskaźnik będący NULL em
Ostatnio zmodyfikowano 2017-03-23 21:18
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.
|
|
carlosmay |
» 2017-03-23 18:09:59 Do wskaźnika jest przypisany adres o wartości NULL (czyli 0 ). |
|
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. |
|
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ń. |
|
« 1 » |