C

C

[C/C++] 구조체 정보를 디스크에 읽고 쓰는 방법 (2/2)

지난 글에서는 구조체로 정의한 임의의 정보들을 디스크에 기록하는 방법을 예시를 통해 살펴보았다. 그런데 해당 글의 예제는 실제 기록하고 읽어들일 때 사용하는 함수(fread(), fwrite())의 사용법에 초점을 맞추었던 관계로 모든 정보가 구조체 내부에 들어있는 상황을 가정했다. 모든 정보가 구조체 속에 들어있는 상황은 구조체 멤버 중에 포인터가 없는 상황을 말한다. 모든

By sooop

C

[C/C++] 구조체 정보를 디스크에 읽고 쓰는 방법 (1/2)

텍스트가 아닌 애플리케이션의 고유한 데이터를 파일에 기록하는 방법에 대해서 알아보자. 애플리케이션 내에서 정의한 어떤 정보는 다양한 형태와 구조를 가질 수 있기 때문에, 평문 텍스트를 저장하는 것과는 다르다. 이 글에서는 간단한 데이터 타입을 구조체를 통해 정의해보고, 이렇게 만들어진 데이터를 어떻게 디스크에 저장하고 또 다시 불러올 수 있는지에 대해서 알아볼 것이다. (아스키코드

By sooop

C

[C/C++] 가변인수를 받는 함수

C함수의 가변인수 C함수도 가변인수를 사용할 수 있다. 대표적인 예가 printf이다. printf에는 서식 문자열을 비롯하여 서식에 채워질 값들을 컴마로 연결하여 나열할 수 있다. 이러한 가변인수는 어떻게 만들어서 사용할 수 있는지 살펴보자. 가변인수 함수의 선언 가변 인수 함수는 가변적으로 받을 인수 대신 …을 사용하는 것으로 가변 인수 함수임을 컴파일러에게 알릴 수 있다.

By sooop

C

[C/C++] 이중 연결 리스트

뜬금없이 이중 연결 리스트. 연결 리스트는 여러 개의 노드로 구성된 리스트가 있고, 각각의 노드가 다음 노드로의 링크를 가지고 연결되어 있는 연속적인 데이터 구조이다. 보다 흔히 접하는 연속적인 데이터 구조로는 배열이 있는데, 배열의 경우에는 메모리 상에서 연속된 위치에 데이터가 위치하지만, 연결 리스트는 이러한 구조는 아니고 그저 하나의 노드가 다음 노드를 가리키는

By sooop

C

[혼연C] 단순연결리스트 예제 컴파일이 안돼서...

혼자 연구하는 C/C++의 단순 연결 리스트를 혹시나 싶어서 코딩해봤는데 오류를 뿜으며 컴파일이 안되더라. OSX환경이라 그런 것인지 아니면 이곳의 예제가 C++ 컴파일러여야 하는것인지, 아님 내가 그저 gcc(Apple LLVM)로 컴파일을 해서 문제가 있는 것인지는 모르겠다. 아무튼 구조체 태그를 가지고 새로운 변수를 선언/정의할 때, C에서는 일일이 struct를 붙여줘야

By sooop

C

20111105 :: Learning C - 변수의 종류

아 이거 다 늙어서(?) C언어 공부하려니 훽훽 안돌아가는 내 머리가 원망스러울 따름이고 ㅠㅠ. 어쨌든 이 글은 변수를 설명하는 강좌라기 보다는 C 소스를 볼 때 마법처럼(?) 느껴지는 여러 용어에 대한 이해를 돕기 위한 메모차원의 포스팅 변수 많은 프로그래밍 서적들이 설명하듯이 변수는 어떤 값을 보관하는 상자나 그릇 같은 것이다. 물론 이런 비유는

By sooop