Я читал о SAL и мне не ясно, применяются ли аннотации к типам указателей к ссылке или к значению, на которое она указывает. Например, если у меня есть:
void f(_In_ type* t);
_In_
означает «Параметр должен быть действительным в предварительном состоянии и не будет изменен». Означает ли его применение здесь, что адрес t не изменится, или значение t?
В вашем примере _In_
Значит это
t
проверяется на нулевое значение перед разыменованием его в функции; t
предполагается, что не является нулевым в самой функции. Путем изменения _In_
в _In_opt_
, VS Анализ кода будут подтвердить это t
проверяется на нулевое значение перед разыменованием.type
из памяти, на которую указывает t
как присвоение значения разыменованного указателя переменной.Других решений пока нет …