본문 바로가기

전체 글846

C언어 함수들1 #include int _getch(void) 문자 입력하기 int _putch(int ch); 문자 출력하기 #includ int _stricmp(const char *s1, const char *s2); 문자열을 비교하는데 대, 소문자 구분을 안함 char *strstr(const char *string, const char * strCharSet); string은 검색될 문자열 , strCharSet은 검색할 문자 또는 문자열 검색 성공시 검색 위치의 포인터 값(번지) 반환 실패시 NULL반환 char * strchr(const char *satring, int c); string은 검색될 문자열, c는 검색할 문자 찾으면 그 위치의 메모리 번지 값 반환, 찾지 못하면 NULL반환 ret(검색된 번.. 2021. 2. 11.
메모리 관리와 동적할당 프로그램을 실행하면 해당 프로그램의 실행을 위한 메모리 공간이 운영체제에 의해서 미리 마련이 된다 . 그리고 이 메모리 공간 내에서 변수가 선언되고, 문자열이 선언된다. 메모리의 구성을 살펴보면 네가지 영역으로 구분된다. 코드 영역(Code Area) 코드 영역은 이름 그대로 실행할 프로그램의 코드가 저장되는 메모리 공간이다. 따라서 CPU는 코드영역에 저장된 명령문들을 하나씩 가져가서 실행을 한다. 데이터 영역(Data Area) 데이터 영역에는 전역변수가 static으로 선언되는 static변수가 할당된다. 즉 이영역에 할당되는 변수들은 프로그램의 시작과 동시에 메모리 공간에 할당되어 프로그램 종료 시 까지 남아있게 된다는 특징이 있다. 스택 영역(Stack Area) 스택 영역에는 지역변수와 매개변.. 2021. 2. 10.
배열 기반의 리스트(List)2 전의 예제를 토대로 리스트를 구현하자 . LCount는 별도의 설명이 필요없다. //ArrayList.c #include #include "ArrayList.h" //리스트의 초기화 void ListInit(List *plist) { (plist -> numOfData) = 0; //저장된 데이터의 수 (plist -> curPosition) = -1; //참조되는 위치(배열인덱스값) } //데이터의 삽입 void LInsert(List * plist, LData data) { if(plist ->numOfData >= LIST_LEN) //저장된 데이터 수가 배열의 길이를 넘으면 { puts("저장이 불가능합니다."); return; } plist->arr[plist ->numOfData] =data;.. 2021. 2. 9.
배열 기반의 리스트(List)1 컴퓨터공학에서의 추상 자료형(Abstract Data Type) 추상자료형, ADT라고 불리는 이것은 컴퓨터 공학에서 흔히 등장하는 용어이다. 등장하는 영역에 따라서 의미상 약간 차이가 있는 것 처럼 느껴질 수 도 있지만, 실제 의미에서 조금 확장된 개념으로도 사용되기도 한다. 하지만 실제로 차이를 보이는 것은 아니고, 이해가 완전히 되지 않아서 그렇게 느낄 뿐이다. 자료구조에서의 추상 자료형 구체적인 기능의 완성 과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것 typedef struct _wallet { int coin100Num; //100원짜리 동전수 int bill5000Num; //5000원 짜리 지폐의 수 }Wallet; 이렇게 C언어를 기반으로 구조체를 정의 했다면 구조체를 기반.. 2021. 2. 8.
파일입출력2 int fputc(int c, FILE *stream); //문자 출력 int fgetc(FILE *stream); //문자 입력 int fputs(const char* s, FILE *stream); //문자열 출력 char * fgets(char* s, int n, FILE *stream); //문자열 입력 예전에는 stream부분에 표준 입출력을 의미하는 stdin이나 stdout을 인자로 전달함으로써 키보드와 모니터를 대상으로 입출력을 진행하였는데, 매개변수의형이 의미하듯이 매개변수 stream에 FILE 구조체 포인터를 인자로 전달하여 파일대상의 입출력을 진행할 수 있다. #include int main() { FILE *fp = fopen("simple.txt", "wt"); if(fp==NU.. 2021. 2. 7.
파일 입출력1 파일의 이동 경로가 되는 다리를 가리켜 '스트림(Stream)'이라 한다. 즉 프로그램과 파일 사이에 스트림을 형성해야 데이터를 주고 받을 수 있다. 프로그램과 파일사에이 스트림이 형성된 것은 파일로부터 데이터를 읽어들일 준비가 됬다는 것이다. #include FILE *fopen(const char *filename, const char *mode); ->성공시 해당 파일의 FILE구조체 변수의 주소 값, 실패시 NULL반환 함수의 첫번째 인자로는 스트림을 형성할 파일의 이름을,. 두 번째 인자로는 형성할 스트림의 종류에 대한 정보를 문자열의 형태로 전달한다. 그러면 이 함수는 해당 파일과의 스트림을 형성하고 스트림정보를 FILE구조체 변수에 담아서 그 변수의 주소 값을 반환한다. FILE이라는 이름의.. 2021. 2. 6.