728x90 반응형 C언어 시작 728x90 반응형 28 21 C 언어 메모리 동적 할당 malloc calloc realloc free 예제 이번 시간엔 메모리 동적 할당에 대해서 알아보도록 하겠습니다! 바로 변수들에게 메모리를 사용자가 원하는 대로 공간을 할당해주고 그 공간을 소멸시킬 수 있는 함수입니다! 여기엔 malloc, calloc, realloc 함수가 존재하는데요 하나하나 알아보도록 하겠습니다!malloc 함수예를 들어 한 변수를 선언해 볼게요! char *str = (char*)malloc(sizeof(char)*50); 이런 식으로 선언하는데요! 이 문장의 뜻은 이렇습니다! char형 포인터로 길이가 50인 문자 배열을 담을 수 있는 공간을 할당한다는 뜻이에요! 그리고 이런식으로 char* func (int n) { char *str = (char*)malloc(sizeof(char)*50); ... return str; fr.. 2016. 8. 24. 20-3 C 언어 파일 위치 지시자 fseek ftell 예제 2016/08/21 - [IT/C언어] - 20-2 C 언어 파일의 입출력 심화(바이너리) 예제오늘은 파일 위치 지시자를 배워보도록 할거에요~ 먼저 파일 위치 지시자란 말그대로 파일에서 가리키고 있는 멤버를 말합니다! 즉 파일을 개방하고 문자 단위 출력을 하면 파일 맨 앞 부분부터 차례로 나오는 걸 확인할 수 있죠! 바로 개방 후에는 파일 처음을 가리키고 있는데요 여기서 파일 중간부터나 파일 맨 끝부터 읽고 쓰기를 원한다면 파일 위치 지시자를 이동시켜야해요! 이동하는 함수는 fseek입니다! 그럼 예시를 통해 알아볼까요? 이렇게 abcdefgh가 적혀있는 ex.txt라는 파일이 있다고 가정합시다. file=fopen("ex.txt","rt); fseek(file, 2, SEEK_SET); putchar(.. 2016. 8. 24. 20 C 언어 파일의 입출력 예제 2016/08/17 - [IT/C] - 19-4 C 언어의 구조체 변형 열거형 예제이번 시간에는 C 언어에서 파일에 저장되어 있는 데이터를 읽고 쓸 수 있는 파일의 입출력을 배워보도록 하겠습니다 먼저 파일을 읽기 위해서 뭐가 필요할까요?? 바로 스트림이라는 것이 필요합니다!! 스트림이란? 프로그램과 파일 사이를 연결해주는 다리 역할을 해주는 애를 말합니다!! 그럼 파일을 여는 방법을 예제를 통해 알아볼까요?FILE *file = fopen("File.txt","wt"); 이런식으로 파일을 여는데요! FILE 이 파일은 사실 구조체 포인터 변수입니다! 이러면 fopen 이걸로 파일이 열려서 *file 요 변수를 통해서 접근할 수 있어요~ fopen 이 뒤에 괄호 안에 "File.txt","wt"이 두 개 .. 2016. 8. 18. 19-4 C 언어의 구조체 변형 열거형 예제 2016/08/10 - [IT/C언어] - 19-3 C 언어의 구조체와 비슷한 공용체 예제이번 시간에는 열거형을 공부해 볼 거에요~ 열거형은 구조체나 공용체랑 마찬가지로 선언하거나 다루는 방법은 비슷합니다! 열거형은 변수에 정수 형태로 저장한다는 뜻이에요! 어떻게 보면 배열이랑 비슷한 느낌인데요 이거를 말로만 하면 알아먹기 힘들겠죠? 예제를 통해 알아보도록 하겠습니다!typedef enum table{ one=1, two=2, three=3, four=4, five=5 }Table; 구구단을 출력하기 위한 예제입니다! 이제 메인함수에 이렇게 써넣으면int main() { for(int i=1; i 2016. 8. 17. 19-2 C 언어의 구조체의 포인터 예제! 2016/07/31 - [IT/C언어] - 19-1 C 언어의 구조체의 기초 예제!이번 시간에는 구조체에 접근 할 수 있는 포인터 변수를 선언하는 방법에 대해 알아보도록 하겠습니다! 구조체 변수의 포인터 변수를 알아보기 전에! 구조체 변수의 주소 값의 특징에 대해 알아보도록 할게요! 구조체 변수의 주소 값은 그 구조체의 첫 번째 멤버의 주소 값과 똑같아요! 저번 시간 구조체를 예를 들자면 구조체 변수의 주소 값이 첫 멤버인 name의 주소값과 동일하다는 거죠! 이제 선언하는 법을 알아보도록 하겠습니다!int num=4; int *ptr = # 포인터 변수를 선언할 때 이렇게 선언했었죠! 구조체 변수의 포인터 변수도 struct pos pos1 = {"name", 5, 20}; struct pos .. 2016. 8. 1. 19-1 C 언어의 구조체의 기초 예제! 2016/07/27 - [IT/C언어] - 18-5 C 언어 문자열 숫자 변환 atoi이번 시간엔 구조체를 배워보도록 하겠습니다!! 구조체란! 하나 이상의 변수를 모아서 새로운 자료형을 정의하는 도구에요! 예를들어 좌표나 개인정보 같은 정보를 표현하려면 변수를 여러 개 선언해야겠죠? 이런 같은 성격을 지닌 변수들을 묶어서 관리하기 쉽게 보관해두는게 바로 구조체입니다!! 그럼 예시를 통해 알아보도록 할게요! struct pos { char name[20]; int xpos; int ypos; }; 생각보다 간단하죠? 저렇게 변수나 포인터, 배열을 다 구조체 안에 넣어놓을 수 있어요! 이제 구조체 변수의 선언방법과 접근법을 알아보도록 하겠습니다!struct pos pos1; 이렇게 선언하면 됩니다! 가운데 .. 2016. 7. 31. 18-5 C 언어 문자열 숫자 변환 atoi 2016/07/24 - [IT/C언어] - 18-4 C 언어 문자열 관련 strcmp, strncmp 예제이번 시간엔 문자열을 숫자로 숫자를 문자열으로 바꾸게 해주는 atoi 함수를 배워보도록 할게요 atoi(const char) atoi는 이렇게 생겼어요 저 괄호 안에 문자열을 집어넣으면 정수 형태로 반환하는 것이죠 그럼 예제를 볼까요? #include #include int main(void){ char *str1; int num; printf("정수 입력: "); scanf("%s", str1); num = atoi(str1); printf("정수는 %d\n", num); } 이렇게 사용해요! 저기 맨 마지막 줄에 printf("정수는 %d\n", num); 여기에서 num를 쓸 필요없이 atoi(.. 2016. 7. 27. 18-4 C 언어 문자열 비교 strcmp, strncmp 예제 2016/07/23 - [IT/C언어] - 18-3 C 언어 문자열 관련 strcat, strncat 예제이번 시간에는 strcmp 와 strncmp를 배워보도록 할게요! strcmp는 string compare 이라는 뜻이에요 즉 문자열을 비교할 때 쓰는거죠! C 언어에서는 문자열을 복사하고 붙여넣을 때처럼 그냥 쓸 수가 없기 때문에 이런 함수가 존재하는 거에요 그러니까 이렇게 if (str1 == str2)쓸 수 없다는 거죠 이렇게 하면 주소를 비교하게 되는거에요 내용을 비교하고 싶으면 strcmp를 써야하는데#include #include int main(void){ char *str1="String"; char *str2="String"; if (!strcmp(str1, str2)){ printf.. 2016. 7. 24. 18-3 C 언어 문자열 복사 strcat, strncat 예제 2016/07/23 - [분류 전체보기] - 18-2 C 언어 문자열 관련 strcpy, strncpy 예제이번 시간에는 strcat와 strncat를 배워보도록 할게요 이것들은 무슨 역할을 하는 애들일까요? 얘네들도 복사해서 붙여넣는 역할을 하는 애들인데요 strcpy와 strncpy와는 차이점이 있습니다!! strcat와 strncat는 복사할 문자열에 내용이 들어있으면 그 뒤에 붙여주는 애들이에요!! 그럼 strcat 예제를 볼까요? #include #include int main(void){ char str1[]="Hello"; char *str2=" world"; strcat(str1, str2); } 이렇게 사용합니다 strcpy와 사용법은 비슷해요! 이렇게 하면 str1에 뒤에 world 이.. 2016. 7. 23. 18-2 C 언어 문자열 복사 strcpy, strncpy 예제 2016/07/23 - [IT/C언어] - 18-1 C 언어 문자열 관련 strlen 예제이번 시간엔 문자열을 복사하고 붙여넣는 strcpy와 strncpy를 배워보도록 하겠습니다! 그런데 이렇게 문자열을 복사하고 붙여넣는 것이 왜 필요할까요? 바로 문자열은 직접 전달이 불가능하기 때문입니다. 즉char str1[]="Hello world"; char str2[]=ch3; 이런 식으로 붙여넣기가 불가능 하다는거죠. 그래서 C 언어에서는 이런 함수를 제공하고 있어요 그럼 먼저 strcpy를 볼게요. #include #include int main(void){ char str1[]="Hello world"; char *str2; strcpy(str2, str1); } 이렇게 사용해요 이렇게 하면 str2에 .. 2016. 7. 23. 이전 1 2 3 다음