[완료] C언어 포인터가 참조하는 char배열의 크기?
글쓴이: luciell / 작성시간: 수, 2010/01/13 - 11:26오전
C를 공부중인 학생입니다 :)
call by reference 로 함수를 구현하다보니 제가 원하는 값을 얻기 위해선
포인터가 참조하는 값의 크기가 필요하게 되었습니다.
물론 그 값을 아규먼트로 넘겨도 되지만, 궁금하여 질문하게 되었습니다.
예를들어 다음 코드를 보시면
#include <stdio.h> int main(int argc, **argv) { char str[200]; char *p; p = str; printf("p sizeof : %d\n", sizeof(p) ); // p라는 포인터의 크기 : 4 printf("*p sizeof : %d\n", sizeof(*p)); // p가 가리키는 값(str배열의 첫번째 주소)의 크기 : 1 return 0; }
이와 같이 포인터가 가르키는 배열의 크기를 구하고 싶습니다.
다음은 제가 구현할려는 코드입니다.
void 함수 (char *str) { int strsize; strsize = 이부분에서 str배열의 크기인 200을 가져오고 싶습니다. } int main(int argc, char **argv) { char str[200]; 함수(str); return 0; }
많은 개발자 선배님들의 조언을 구해봅니다!
Forums:
불행히도... 안됩니다.
C에서 그걸 알아낼 수 있는 방법은 없습니다. 함수 인자로 배열 크기를 함께 넘겨야 합니다.
흐음.. 그렇다면
흐음.. 그렇다면 아규먼트로 넘기는 방법밖에는 없는것인가요?.. 이런..
감사합니다^^
네가 꿈을 꾸지 않는 한, 꿈은 절대 시작되지 않는단다.
언제나 출발은 바로 '여기'야 떄가 무르익으면, 그럴수 있는 조건이 갖춰지면,
하고 미루다 보면, 오느새 현실에 파묻혀 소망을 잃어버리지.
그러므로 무언가 '되기(be)' 위해서는 반드시 지금 이 순간 무언가를 '해야(do)'만 해
- Stuart Avery Gold 의 우화소설 Ping 중에서..
댓글 달기