게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
초보의 C언어 질문입니다. ㅜㅜ;
게시물ID : computer_29024짧은주소 복사하기
작성자 : 유유이알
추천 : 0
조회수 : 383회
댓글수 : 7개
등록시간 : 2012/01/03 15:05:22
void exam(char *able)
{
int b;
char c1[2]; 
char *p;

printf("able :  %s \n",able);

b = strlen(able);

printf("able size: %d \n", b);

b= (strlen(able)+2)*sizeof(char);
printf("strlen(able)+2 : %d \n", b);

p =  (char *)malloc((strlen(able)+2)*sizeof(char)); 


b = strlen(p);

printf("p malloc size: %d \n", b);

c1[0]=0x3E;
c1[1]=0x3E;

printf("p init :  %s  \n",p);
memset(p,0,sizeof(p));
strcpy(p,able);
strcat(p,c1);
printf("p :  %s  \n",p);
b = strlen(p);
printf("p size: %d \n", b);
}

위 코드에서  exam("standard")를 하면
able : standard
able size: 8
strlen(able)+2 : 10
p malloc size : 24
p init : *******************
p : standard>>*********
p size : 21

이렇게 나옵니다 ㅜ.ㅜ

우선 1. malloc size를 했을 때 왜 24가 되나여 ㅜ.ㅜ 10이 되게 하고 싶은데 ㅜ.ㅜ
마지막에 다시 21이 되는건 또 왜그런가요 ㅜ.ㅜ 

질문이 너무 허접해서 죄송합니다 ㅜ.ㅜ.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호