C

    c언어 모르는 부분

    파일의 크기만큼 공간 할당하는 방법 int main() { char *buffer; int size; int count; FILE *fp = fopen("hello.txt", "r"); // hello.txt 파일을 읽기 모드(r)로 열기. // 파일 포인터를 반환 fseek(fp, 0, SEEK_END); // 파일 포인터를 파일의 끝으로 이동시킴 size = ftell(fp); // 파일 포인터의 현재 위치를 얻음 buffer = malloc(size + 1); // 파일 크기 + 1바이트(문자열 마지막의 NULL)만큼 동적 메모리 할당 memset(buffer, 0, size + 1); // 파일 크기 + 1바이트만큼 메모리를 0으로 초기화 fseek(fp, 0, SEEK_SET); // 파일 포인..

    배열 포인터와 포인터 배열

    배열 포인터와 포인터 배열

    포인터 배열이란? 포인터 변수를 저장할수 있는 배열 1 int *p[3] ={&arr1,&arr2...}; cs 말그대로 포인터 변수들을 저장하고있는 배열이다. 배열 포인터란? 배열을 가리키는 포인터 사용하는 이유: 2차원 이상의 배열에서 인덱싱을 하기위해서! 1 int (*p)[3] =arr1; cs * 일반 포인터 변수를 생성하여 접근 할 때는 * 로 값에 접근 * 위와 같이 배열 포인터로 생성하여 접근 할때는 **로 값에 접근 * 일반 변수를 포인터로 접근 할때도 **로 값에 접근 - 예제 #include #include int main() { int arr1[6] = { 10,20,30,40,50,60 }; int arr2[2][3] = { 10,20,30,40,50,60 }; int *p1 = ..

    메모리 영역

    메모리 구조 영역 예시 코드 영역 실행할 프로그램의 코드 데이터 영역 상수, 리터널, 전역 변수 힙 영역 동적 할당 (런 타임에 크기 결정) 스택 영역 지역 변수, 매개변수 (컴파일 타임에 크기 결정) 데이터 영역 전역 변수와 static 변수가 할당되는 영역 프로그램 시작 동시에 할당된다. main 함수가 호출되기 전 할당 프로그램 종료될 때까지 존재, 종료 시 메모리에서 소멸 변수 선언 int main(){ ...... return 0; } 스택 영역 함수 호출 시 생성되는 변수가 저장되는 영역 함수 종료 시 메모리에서 소멸된다. 컴파일 타임에 크기가 결정된다 = 미리 크기를 정해야한다 = 유연성이 없다. 컴파일 타임 : 컴파일이 진행되는 시간 int number(int a){ int a=999; }..

    파일 입출력

    파일 입출력 기본 구조 선언 : FILE * 파일변수; 파일 열기 : 파일변수= fopen("파일이름","모드"); 파일 닫기 : fclose(파일변수); - 바로 닫아주는 습관을 들이기 if(파일변수==NULL) { .. } - 에러가 났을 때를 방지하는 습관 들이기 feof(파일변수); - 파일의 끝이 아니라면 0을, 끝이라면 0이 아닌 수를 리턴 while(!feof(fp)) { ... } - 파일의 끝까지 반복한다. 파일 열기 FILE *fopen("파일이름", "모드") 에러가 발생하면 NULL 리턴 파일 이름 : 액세스할 대상 파일 입력 (큰 따옴표로 묶어줘야 함) 모드 : 끈 따옴표로 묶어줘야 함 r: 읽기 전용, 파일이 없으면 에러 리턴 w: 쓰기 전용, 기존의 파일을 지우고 새로 생성 a..

    파일 입출력

    파일 입출력 기본 구조 선언 : FILE * 파일변수; 파일 열기 : 파일변수= fopen("파일이름","모드"); 파일 닫기 : fclose(파일변수); - 바로 닫아주는 습관을 들이기 if(파일변수==NULL) { .. } - 에러가 났을 때를 방지하는 습관 들이기 feof(파일변수); - 파일의 끝이 아니라면 0을, 끝이라면 0이 아닌 수를 리턴 while(!feof(fp)) { ... } - 파일의 끝까지 반복한다. 파일 열기 FILE *fopen("파일이름", "모드") 에러가 발생하면 NULL 리턴 파일 이름 : 액세스할 대상 파일 입력 (큰 따옴표로 묶어줘야 함) 모드 : 끈 따옴표로 묶어줘야 함 r: 읽기 전용, 파일이 없으면 에러 리턴 w: 쓰기 전용, 기존의 파일을 지우고 새로 생성 a..