문자열과 정수의 concatenation 질문입니다
글쓴이: kid1402 / 작성시간: 월, 2009/10/12 - 5:49오전
어떤 문자열과 어떤 정수값을 concatenate 하기 위해 strcat 함수를 사용하였는데 왠지 자꾸 세그멘테이션 오류가 발생합니다
아래는 코드입니다
int k = 39; // 아무 값이나 char dir[80] = "age="; char tail[] = "th"; printf("dir is %s \n tail is %s \n",dir,tail); strcat ( dir, (char *) k); strcat (dir, tail); printf("result is %s\n", dir);
앞의 dir과 tail을 출력하는 printf문은 잘 실행되는데
뒤의 result 출력문에서 세그멘테이션 오류가 발생하네요..이유가뭘까요?
dest의 크기도 충분히 크게 했고 이어붙일 정수도 char * 로 형변환했는데.. 잘모르겠네요
Forums:
혹시 파이썬 등의
혹시 파이썬 등의 스크립트로 프로그래밍 입문하셨나요?
C의 형변환은 메모리 구조와 밀접하게 연관되어있습니다.
(char *) k는 메모리 번지 39를 가리키는 포인터이지, 정수 39를 문자열로 변환한 "39"가 아닙니다.
snprintf 를 사용하시면
snprintf 를 사용하시면 어떨까요?
snprintf(dir, 80, "age=%dth",k);
댓글 달기