assert의 응용

c or linux 2005. 3. 9. 01:49

assert((ch=getchar())!=EOF);

는 잘못되었다. assert 구문은 디버그용이라서 실제 배포용 버젼에서는 assert구문이 생략된다. 그렇다면! ch=getchar()는 문제가 된다! 이를 빼고 assert(ch!=EOF)라고 하자

 

switch case 문에서 case목록에 포함이 되지 않을 경우 default에 assert(FALSE)를 추가한다!!!!

 

 

 

메모리 블럭을 항달한 뒤에 초기화하지 않고, 저장되어 있던 내용을 사용한다.

 

메모리 블럭의 소유권을 해제(free)한 뒤에도, 그 내용을 계속 사용(reference)한다.

 

블럭을 확장하기 위해 realloc을 호출하여 블럭의 내용이 이동중인데도, 이전 위치의 내용을 계속 사용한다.

 

블럭은 할당되었으나, 그 포인터를 저장하지 않아서 블럭을 읽어버린다.

 

블럭의 경계를 넘어, 읽고 쓰기를 한다.

 

에러 상황을 경고하지 못한다.

 

 

Posted by '김용환'

댓글을 달아 주세요