포인터를 입력으로 사용하는 함수의 종속성에 대해 ACSL 사양을 작성하고 포인터가 NULL이 아닌 경우 내용을 사용합니다.ACSL 의존성에서 유효하지 않은 포인터 사용
/*@ behavior p_null:
assumes p == \null;
assigns \result from \nothing;
behavior p_not_null:
assumes p != \null;
assigns \result from *p;
*/
int f (int * p);
하지만 난 오히려 행동을 피할 것, 그러나 이것은 올바른 (등가) 인 경우 나도 몰라 : 나는이 사양이 올바른지 생각
가//@ assigns \result from p, *p;
int f (int * p);
내가 *p
을 사용할 수 \from
의 오른쪽 부분에 p
이 NULL
일 수 있습니까?
나는 'p! = \ null => \ valid (p)'라는 'required'속성을 추가해야한다는 데 동의하지만 여기서는 '할당'속성에만 관심이 있습니다. 감사. – Anne