[초보질문] 구조체 배열 초기화 및 크기 구하기
글쓴이: zaru / 작성시간: 금, 2005/07/08 - 12:28오후
typedef struct tagINFO { char sType[5]; char sDim[10]; } INTO; INFO info[20]; typedef struct tagCOMMAND { BYTE xbuf[BUF_LEN]; BYTE ybuf[BUF_LEN]; char x[10]; char x[10]; } COMMAND; COMMAND cmd[size];
가 전역으로 선언 됐을때 0으로 초기화 하는 방법과 크기 구하는 법을 알고 싶습니다.
그리고, 위 cmd[size] 에서 size를 동적(가변)으로 사용 할려면 어떻게 해야 되는지요.
memset(&info[0], 0x00, sizeof(info[0])); memset(&cmd[0], 0x00, sizeof(cmd[0]));
초기화는 이렇게 했는데.. 맞는건가요?
Forums:
Re: [초보질문] 구조체 배열 초기화 및 크기 구하기
이렇게 하세요.
도 됩니다.
COMMAND cmd[size]; 를 가변으로 하실려면
cmd를 포인터로 선언해야 하고
메모리 할당(malloc or calloc) 하고
다 쓴후에 메모리 해제(free)를 해야 합니다.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
ㅇㅇ
bzero 는 현재는 쓰이지 않는 구식 함수로서,
.
.
.
memset 짱! (-_-)
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
Re: ㅇㅇ
bzero가 왜 구식 함수인가요? POSIX랑 C99에도 들어 있는 걸로
알고 있습니다만. 뭐 구현이야 memset과 다를 바가 없겠지만요.
----
Let's shut up and code.
Re: [초보질문] 구조체 배열 초기화 및 크기 구하기
이런식으로도 됩니다.
초기화는 memset으로 혹은..위엣분이 쓰셨듯이..선언시
초기화는 memset으로 혹은..
위엣분이 쓰셨듯이..
선언시에 초기화도 가능합니다.
변수를..........
가변으로 쓰고 싶으시다면 배열로 선언하지 마시고
포인터로 선언하세요. 그 후에 malloc, realloc이라든지..
함수를 이용하시면 됩니다.
-----
함수 쓰는 법은 man page에...
^^
___________________
Open Your Eyes
All of things in man page...
From Linux User
Re: ㅇㅇ
bzero는 구 POSIX.1로 알려진 Single UNIX Spec에서 legacy (구식)으로 등록된 함수입니다. 나중에 없어질 수 있다고 씌여 있으며, C99에서는 bzero에 대한 언급이 없습니다.
bzero는 원래 BSD 계열에서 써 왔던 함수로, 특히 network 프로그래밍에 자주 쓰였지만, 쓰지 않는 것이 좋습니다. 이 계열의 모든 함수는 C99 표준 함수인 memset으로 대체될 수 있으며, 이와 비슷한 함수로는 bcmp, bcopy 등이 있습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기