컴퓨터/언어,프로그래밍 썸네일형 리스트형 C언어 :: 파일 입출력 - 사용 1.2 프로그램밍에서의 파일 입출력 프로그래밍 언어를 배우는 이들은 파일 입출력 함수에 대한 많은 두려움을 갖고 있는 것 같습니다. 실제로 프로그래밍에서 파일을 통해 자료를 관리하는 것은 쉬운 일은 아니지만 이는 파일 입출력 함수가 어려운 것이 아니라 프로그래밍을 하면서 무엇을 저장하고 어떻게 읽어올 것인지에 대한 규칙을 정하는 것이 어려운 것이라 생각이 듭니다. 이 또한 많은 경험을 통해 극복할 수 있고 극복해야 하는 것이기 때문에 두려워 피하지 마시기 바랍니다. 여기서는 8장에서 얘기했던 회원 관리 프로그램을 예로 들어 정적 인덱스 배열, 동적 순수 배열, 동적 인덱스 배열에서 파일 입출력에서 각 주의할 사항에 대해서 파악해 보기로 합시다.(fread, fwrite함수를 소개하면서 보여준 예제가 정적.. 더보기 C언어 :: 파일 입출력 1 파일 입출력 함수의 사용 프로그래밍에 있어 파일 입출력은 매우 중요한 요소라는 것은 틀림이 없습니다. 다만, 우리가 C언어에서 익혀야 할 파일 입출력은 관련 라이브러리를 효율적으로 사용하는 것이지 전체 파일 시스템을 정확히 이해하는 것은 아닙니다. 파일은 파일 시스템에서 관리하는 부분과 O/S에서 관리하는 부분, 응용 프로세서에서 관리하는 부분이 서로 긴밀한 관계속에 진행이 됩니다. 파일 시스템에서는 사용자가 생각하는 논리적인 파일을 실제 물리적인 H/W공간에 저장하여 관리를 하는 것을 얘기합니다. 여기서는 하나의 파일 시스템을 관리하는 슈퍼 블럭이나 부팅이미지를 관리하는 부트 블럭, 논리적 파일과 저장된 물리적 파일 매체간의 1:1 매핑을 하는 inode 블럭, 파일들이 저장되는 프리블럭으로 나누어.. 더보기 C언어 :: 동적 메모리 할당 - 사용 1.2 포인터와 동적 메모리 할당 동적으로 할당받은 메모리도 무언가를 통해 접근할 수가 있어야 할 것입니다. 위에서 보듯이 동적 메모리 할당에 관련된 함수들의 반환형들은 모두 void *로써 포인터형 타입이었다. 해당 함수에서는 무슨 목적으로 메모리를 할당하는 것인지를 알 수 없기 때문에 void *이지만 사용하는 개발자는 자신의 목적에 맞게 강제 형변환을 하여야 할 것입니다. 여기에서는 동적으로 할당받은 메모리를 어떻게 포인터 변수로 유용하게 관리하는 지에 대해서 살펴보기로 합시다. 0.1.1 동적 순수 배열 이 책에서 배열은 크게 정적 순수 배열, 정적 인덱스 배열, 동적 순수 배열, 동적 인덱스 배열로 구분하여 설명하고 있습니다.(통용되는 용어는 아닙니다.) 정적이라는 의미는 배열의 크기가 정적이라.. 더보기 C언어 :: 동적 메모리 할당 - 관련 함수 1 동적 메모리 할당 이번 장에서는 프로그래밍에 자주 사용되는 라이브러리 중에 동적 메모리 할당에 관련된 부분에 대한 설명을 하고자 합니다. 프로그래밍에서 데이터를 위해 메모리를 할당하는 방법은 변수 선언에 의한 방법 외에도 필요시에 원하는 사이즈 만큼 동적으로 할당받는 방법이 있습니다. 이는 관리할 데이터의 성향과 관리 기법에 따라 선택을 하게 되는 사항인데 이들에 대해 자세히 알아보기로 합시다. 1.1 동적 메모리 할당 함수들 먼저 여기서는 동적 메모리 할당 함수들에 대해 먼저 살펴보기로 합시다. 1.1.1 malloc() 포맷: void *malloc(size_t size); 사용자가 원하는 메모리 사이즈를 입력매개변수로 전달하면 해당 함수에서 메모리를 할당하여 해당 메모리주소를 반환하는 함수입니다.. 더보기 C언어 :: 이중포인터 동적할당 해제에 관해서.. #include #include /*malloc 과 calloc ,free가 있는 함수*/ void main(void){ int x,y,i,j; int **b; /* b[][]과 *b[] 로 하면 왜 안될까 */ printf("몇행 몇열까지 넣을꺼삼?"); scanf("%d%d",&x,&y); b = (int**)malloc(sizeof(int*)*x); /* (int**)에서 int 옆에 *이 왜 두개있을까? 하나면 워닝뜸.. */ /* sizeof(int*)에서 *은 잇어도 되고 없어도 됨..왜? */ /* int*의 뜻은 몰까? */ for( i = 0; i < x; ++i ) b[i] = (int*)malloc(sizeof(int)*y); /* b= (int*)malloc(sizeof(int)*x.. 더보기 C언어 :: [축약 대입 연산자] 종류와 그 의미 활용법!!! 비트와 여러 연산자중에 축약 대입 연산자는 대입연사자인 = 와 산술연산자인 (+,-,*,/,등등등)을 합쳐 놓은 듯한 연산자를 말한다, 축약 대입 연산자도 대입 연산자이므로 왼쪽 피연산자 부분에는 반드시 변수만이 올수 있다. 축약 대입 연산자중 하나인 x += y 를 예를 들어 설명하면, x += y 변수 += 연산식 축약 대입 연산자 x += y의 연산 방법은 변수 x 이전 값에다 오른쪽의 연산식 y에 의하여 평가된 결과값을 연산(더하기)하여, 새롭게 수정된 값이 변수 x에 대입된다. 즉 연산자인 += 의 의미는 다음과 같다. x = x + y 축약 대입 연산자는 산술 이항 연산자와 비트 이항 연산자가 각각 대입연산자와 결합되어 다음과 같은 종류를 제공한다. 축약 대입 연산자 의미 x += y x = .. 더보기 C언어 :: 주요 헤더파일... 헤더파일에 대하여. 원시 프로그램은 여러 파일로 나누어 각각 별도로 번역할 수 있는데 번역(compile)된 루틴들을 모아둔 파일을 라이브러리(library)라 한다. 프로그램에서 라이브러리 루틴을 사용하려면, 마치 함수가 사용자 프로그램에 정의되어 있는 것처럼 간단히 호출만 하면 된다. 라이브러리 함수는 번역된 형식으로 저장되어 있기 때문에 사용자 프로그램은 라이브러리 파일 또는 라이브러리 함수를 포함하는 파일과 링크(link)되어야 한다. 라이브러리를 다른 파일과 링크하면, 선언된 라이브러리 함수만이 실행파일에 포함되지만, 파일에 함수를 작성해 두고 번역하여 두 파일을 링크시키면, 불필요한 함수까지 코드로 첨가되기 때문에 라이브러리는 디스크 공간과 주 메모리를 절약하는데 필요하다. main()함수에서.. 더보기 로또당첨번호, 제 329회(09.03.21) 나눔로또 당첨번호 확인하기 ▶ 로또당첨번호, 제 329회(09.03.21) 나눔로또 당첨번호 확인하기 ▶ 오늘 저녁 SBS 로또 방송에서 결과 나오는데로 바로 올려 드리겠습니다. 아래는 지난 328회 로또 당첨 결과 입니다. [나눔로또] 제 329회 로또 당첨번호 [1등 당첨번호] 9, 17, 19, 30, 35, 42 [ 보너스 번호 ] 4 당첨되신분들 축하드립니다. ^^ 공은 차고싶고 몸은 말을 안듣고..ㅋㅋ 복권의 사회적 기능 사람은 누구나 어느 정도의 요행을 바라는 본능을 가지고 있다. 도박에 대한 충동도 이러한 본능에서 연유된다 할 수 있겠다. 이렇게 사람들의 기대와 충동을 조직적으로 이용하여 사회적으로나 국가적으로 유용한 자금을 마련할 수 있도록 하는 것이 복권제도이다. 우리나라에서 복권을 발행하기 위해서는 개개의 복권.. 더보기 이전 1 ··· 20 21 22 23 24 25 26 ··· 36 다음