게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[C/질문] char 포인터 배열 초기화
게시물ID : programmer_14353짧은주소 복사하기
작성자 : ozum2
추천 : 0
조회수 : 2130회
댓글수 : 2개
등록시간 : 2015/11/10 02:25:44
옵션
  • 본인삭제금지
char *argv[BUFSIZ];
포인터 배열을 선언한 후
 
memset(argv, 0, sizeof(argv));
argv[0] = strtok(command, " ");
for(;;)
{
   argv[++i] = strtok(NULL, " ");
   if(argv[i] == NULL) break;
}
이 코드가 반복문에 의해 실행되면서 argv를 초기화하고 command를 입력받아 공백을 기준으로 잘라서 argv에 저장하는 소스입니다.
 

반복문 최초 실행 시에는 argv[0], argv[1], ... 순서로 잘 들어가지만
두번째 실행 시에는 argv[0], ..., argv[n], ... 으로 중간에 NULL이 삽입되어 있습니다.
 
NULL없이 배열에 삽입하기 위해
memset을 사용하지 않고 다른 방법을 사용하거나 위의 for(;;)문 안을 수정해야할 것 같은데
memset 말고는 어떤 함수가 있는지 잘 모르겠고,
for(;;) 내부는 어떻게 바꿔줘야 할지 모르겠습니다.
 
도움 주시면 감사하겠습니다 (_ _)
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호