Re: Funkcije u windows.h biblioeci...
Jeste da je matora tema, ali odgovoriću svejedno, ako još nisi naleteo na odgovor ili ako nekog drugog bude interesovalo.
Funkcije ne samo u Windows API-ju već u gomili drugih API-ja imaju ovakav način da se vrate neki rezultati. Međutim, naravno, programeri koji su dizajnirali ovaj API su predvideli da ti podaci koji se vraćaju neće uvek biti korisni, odnosno nekog korisnika ne bi uvek zanimali. Iz tog razloga je uglavnom nepisano pravilo da se, ako se u nekom parametru koji bi trebao da služi za izlaz, prosledi nulti pokazivač (odnosno &(DWORD(0) iliti NULL, a u novom C++11 nullptr) tada se ti podaci ni ne vraćaju. NULL je uvek zagarantovan da ne pokazuje na validnu memorijsku lokaciju pa je idealan kandidat za takav placeholder.
Dakle, ako funkciju pozoveš kao FillConsoleOutputCharacter(Izlaz, 'A', 1, (COORD){1, 1}, NULL), tada se ovaj parametar gde je NULL neće ni uzimati u obzir. Da je funkcija stvarno pokušala da upiše na memorijsku adresu koju si joj prosledio, dogodio bi se grozan segfault.
|