assert((ch=getchar())!=EOF);
는 잘못되었다. assert 구문은 디버그용이라서 실제 배포용 버젼에서는 assert구문이 생략된다. 그렇다면! ch=getchar()는 문제가 된다! 이를 빼고 assert(ch!=EOF)라고 하자
switch case 문에서 case목록에 포함이 되지 않을 경우 default에 assert(FALSE)를 추가한다!!!!
메모리 블럭을 항달한 뒤에 초기화하지 않고, 저장되어 있던 내용을 사용한다.
메모리 블럭의 소유권을 해제(free)한 뒤에도, 그 내용을 계속 사용(reference)한다.
블럭을 확장하기 위해 realloc을 호출하여 블럭의 내용이 이동중인데도, 이전 위치의 내용을 계속 사용한다.
블럭은 할당되었으나, 그 포인터를 저장하지 않아서 블럭을 읽어버린다.
블럭의 경계를 넘어, 읽고 쓰기를 한다.
에러 상황을 경고하지 못한다.
'c or linux' 카테고리의 다른 글
[펌] 이중 포인터 사용 용도 질문(내공있음) (0) | 2005.03.12 |
---|---|
[펌] [C언어]이 프로그램 내에서 이중 포인터를 사용하는 이유가 뭔가요? (0) | 2005.03.12 |
함수의 인수를 확인하기 위해 assertion을 사용한다 (0) | 2005.03.09 |
원형(prototype) 강화하기 (0) | 2005.03.09 |
배열 포인터 (0) | 2005.03.09 |