Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

새싹교실/2014/손오반/2014-06-05: Difference between revisions

From ZeroWiki
imported>smksyj
No edit summary
(Repair batch-0005 pages from live compare)
 
(13 intermediate revisions by one other user not shown)
Line 1: Line 1:
* 시험 질문 받음 수업 ㅈㅈ
== 동적할당 ==
== 동적할당 ==
* Heap
* Heap
** 왜 Stack과 Heap은 분리되어야 하는가?
** '''왜 Stack과 Heap은 분리되어야 하는가?'''
* malloc()
* void *malloc(size_t size)
** char arr [128]과 char *arr = (char *)malloc(sizeof(char) * 128)의 차이
** char arr[128]과 char *arr = (char *)malloc(sizeof(char) * 128)의 차이
** char **arr를 통해 char arr [8] [8] (2차원 배열) 만들기
** char **arr를 통해 char arr[8][8] (2차원 배열) 만들기
** 구조체의 동적할당 & 동적할당 된 구조체의 멤버 참조
** 구조체의 동적할당 & 동적할당 된 구조체의 멤버 참조
 
* void free(void *ptr)
** 직접 메모리 제어의 위험성
** '''열었으면 닫는다. 할당했으면 해제해준다. 반드시'''
== 문자열 함수 ==
* '''char * != char의 포인터 -> char * == 독자적인 타입'''
** '''type과 type에 연관된 operation == char *와 문자열 처리 함수들'''
* 문자열의 길이 : size_t strlen(const char *s)
* 문자열 복사 : char *strcpy(char *dest, const char *src)
* 문자열 결합 : char *strcat(char *dest, char *src)
* 문자열 비교 : int strcmp(const char *s1, const char *s2)
* 문자열 -> 숫자 :
** int atoi(const char *str)
** long atol(const char *str)
** double atof(const char *str)
== 파일 입출력 ==
* '''FILE *타입'''
** '''type과 type에 연관된 operation == FILE *와 파일 입출력 함수들'''
* FILE *의 생성 : FILE *fopen(const char *filename, const char *mode)
* FILE에 쓰기 : size_t fwrite(const void *buffer, size_t size, size_t count, '''FILE *stream''')
* FILE에서 읽기 : size)t fread(void *buffer, size_t size, size_t count, '''FILE *stream''')
* FILE 닫기 : int fclose('''FILE *stream''')

Latest revision as of 00:45, 27 March 2026

  • 시험 질문 받음 수업 ㅈㅈ

동적할당

  • Heap
    • 왜 Stack과 Heap은 분리되어야 하는가?
  • void *malloc(size_t size)
    • char arr[128]과 char *arr = (char *)malloc(sizeof(char) * 128)의 차이
    • char **arr를 통해 char arr[8][8] (2차원 배열) 만들기
    • 구조체의 동적할당 & 동적할당 된 구조체의 멤버 참조
  • void free(void *ptr)
    • 직접 메모리 제어의 위험성
    • 열었으면 닫는다. 할당했으면 해제해준다. 반드시

문자열 함수

  • char * != char의 포인터 -> char * == 독자적인 타입
    • type과 type에 연관된 operation == char *와 문자열 처리 함수들
  • 문자열의 길이 : size_t strlen(const char *s)
  • 문자열 복사 : char *strcpy(char *dest, const char *src)
  • 문자열 결합 : char *strcat(char *dest, char *src)
  • 문자열 비교 : int strcmp(const char *s1, const char *s2)
  • 문자열 -> 숫자 :
    • int atoi(const char *str)
    • long atol(const char *str)
    • double atof(const char *str)

파일 입출력

  • FILE *타입
    • type과 type에 연관된 operation == FILE *와 파일 입출력 함수들
  • FILE *의 생성 : FILE *fopen(const char *filename, const char *mode)
  • FILE에 쓰기 : size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream)
  • FILE에서 읽기 : size)t fread(void *buffer, size_t size, size_t count, FILE *stream)
  • FILE 닫기 : int fclose(FILE *stream)