Dlaczego dereferencja wartości null nie powoduje awarii mojego programu?
Napisałem następujący kod, aby wywołać awarię (testowałem niektórezagadnienia z CrashReporter):
int *nullp = NULL;
int val = *nullp;
NSLog(@"Hello world %d", val);
W zupełnie nowym projekcie (umieściłem go w aplikacji dla delegataapplicationDidFinishLaunching:
) zawiesza się zgodnie z oczekiwaniami. Ale kiedy dodam go do jednego z moich istniejących projektów, nie ulega awarii! W rzeczywistości kończy się drukowanie „Hello world 0” do dziennika systemu.
To nie ma dla mnie żadnego sensu. Dlaczego dereferencja zerowa nie powoduje awarii?