Аннотации SAL приведут к тому, что компилятор сообщит об ошибке?

Я изучаю аннотации SAL, я тестировал этот пример в Visual Studio 2017.

Я думал, что компилятор сообщит о предупреждении или ошибке, когда я передам нулевой указатель на InCalleeтем не менее, он все еще может работать правильно. Поэтому мой вопрос заключается в том, является ли SAL подобным комментариям к коду и не будет проверять законность данных, или он может проверять данные только потому, что я сделал что-то не так?

void InCallee(_In_ int *pInt) //_In_ is allowed to be NULL
{
int i = *pInt;
}

void GoodInCaller()
{
int *pInt = new int;
*pInt = 5;

InCallee(pInt);
delete pInt;
}

void BadInCaller()
{
int *pInt = NULL;
InCallee(pInt); // pInt should not be NULL
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]