More actions
imported>smksyj No edit summary |
(Repair batch-0005 pages from live compare) |
||
| (17 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)