저도 허접한 실력이지만 아는 대로...
: 리눅스 프로그램 공부를 하고있는 학생입니다.. 공부를 하다가
: 모르는 부분이 넘 많아서리.. 이렇게 글을 올립니다..
:
: #include <unistd.h>
: #include<stdlib.h>
: #include<stdio.h>
:
: #define A_MEGABYTE (1024 * 1024 )
:
: int main()
: {
:
: char *some_memory;
: int megabyte = A_MEGABYTE;
: int exit_code = EXIT_FAILURE;
:
: some_memory = (char *)malloc(megabyte);
: if(some_memory != NULL)
: {
: sprintf(some_memory,"Hello World");
: printf("%s", some_memory);
: exit_code = EXIT_SUCCESS;
: }
: exit(exit_code);
:
: }
:
:
: some_memory = (char *)malloc(megabyte);
: 이라인을 어떻게 써야하는지 잘 모르겠구여~~!!]
: (char *)는 무슨뜻인지.??
: (int *) 이런것두 있던데.. 음냐~
아마도 malloc() 함수가 void *형으로 반환하는 걸로 알고 있는데...
그래서 다시 캐스팅을 시켜주는 것 같습니다.
만일 int형 변수에 할당시켜줄 일이 있다면, () 안에는
((필요한 정수 개수) * sizeof(int)) 가 들어가야겠지요...
: c 언어 와는 다른 문법이 있어서리.. 이게 강제루 char형으루 변환
: 시켜주는건가여?? 아닌거 같은데~~
:
: EXIT_SUCCESS 는 무엇을 뜻하는 것인지..?
성공적으로 실행되었다고 나타내는 것으로 약속된 반환값이겠지요...
: malloc를 어느때.. 또 어떻게 쓰는건지두 잘 모르겠구여~~
유닉스 프로그래밍에서는 메모리를 할당받지 않은 곳을 함부로 사용하면
Segmentation Fault가 발생하니까...
꼭! malloc() 등으로 메모리를 할당받으셔야 합니다.
마지막에 free() 도 잊지 마시구요...
: 리눅스프로그램 초보의 질문이니 꼭~ 성실한 답변 기다리겠습니다!!
:
: 감사합니다....
:
: --
: Do your best~-- 오병현 octaphial at yahoo.com