반응형

분류 전체보기 2946

[C언어] 82. 동적 메모리 할당 함수

82. 동적 메모리 할당 함수 C언어에서는 데이터를 관리하기 위해 메모리를 할당받는 방법으로 변수 선언을 제공하고 있어요. 그런데 변수 선언으로 메모리를 할당받는 것은 컴파일러 시점에 할당할 메모리 크기를 결정해요. 물론 실제 메모리를 할당하는 시점은 프로그램이 실행 중에 할당하지만 할당할 크기를 결정하는 것은 컴파일 시점이예요. 그런데 프로그래밍하다 보면 할당할 메모리 크기를 컴파일 시점이 아닌 프로그램 실행 중에 결정할 때도 있어요. 학생 관리 프로그램에서 최대 관리할 학생 수를 최종 사용자가 결정할 수 있다면 개발자가 정하는 것보다 훨씬 유연하겠죠. C언어에서는 표준 라이브러리 함수로 동적 메모리 할당 관련 함수를 제공하고 있어요. void *malloc(size_t size); void *call..

[C언어] 81. 사용자 정의 형식 정리하기

81. 정리하기 1. 사용자 정의 형식 실습에서 사용했던 시나리오 규모의 시나리오를 작성하시오. 2. 작성한 시나리오로 형식을 정의하고 기능 구현 및 테스트를 하시오. 74. 구조체75. 공용체76. 열거형77. 사용자 정의 형식 실습 - 시나리오78. 사용자 정의 형식 실습 - 형식 정의79. 사용자 정의 형식 실습 - 기능 구현80. 사용자 정의 형식 실습 - 테스트

[C언어] 80. 사용자 정의 형식 실습 - 테스트

80. 사용자 정의 형식 실습 - 테스트 먼저 Program.c 소스 파일을 추가하여 포함할 헤더 파일을 명시하세요. #include "Student.h" #include 진입점 main 함수에서는 두 명의 학생을 테스트 하세요. void TestStudent(Student *stu, const char *name); int main() { Student stu1; Student stu2; TestStudent(&stu1,"홍길동"); TestStudent(&stu2,"강감찬"); return 0; } 학생을 테스트 하는 함수를 작성합시다. void TestStudent(Student *stu, const char *name) { 테스트 시작을 콘솔 화면에 출력하세요. printf("-----------..

[C언어] 79. 사용자 정의 형식 실습 - 기능 구현

79. 사용자 정의 형식 실습 - 기능 구현 이제 Student.c 소스 파일을 프로젝트에 추가하여 구체적으로 기능을 정의하세요. 먼저 필요한 헤더 파일을 포함하는 구문이 필요하겠죠. #include "Student.h" #include #include #include 먼저 학생 생성자를 작성하세요. 생성자는 학생 데이터를 초기 설정하는 함수예요. void Student_Student(Student *stu,const char *name) { 학생은 생성할 때 순차적으로 번호를 부여하세요. 이를 위해 정적 변수로 가장 최근에 부여한 학생 번호를 기억하는 변수를 선언하세요. static int last_num; 입력 인자로 전달받은 학생의 메모리를 초기화가 필요하죠. memset(stu,0,sizeof(S..

[C언어] 78. 사용자 정의 형식 실습 - 형식 정의

78. 사용자 정의 형식 실습 - 형식 정의 먼저 학생 구조체와 상수를 정의하세요. 소스 파일을 분리하여 개발할 때 다른 소스에서 접근할 수 있는 형식과 기능은 헤더 파일에 작성하세요. 그리고 구체적인 함수 정의문을 소스 파일에 작성하세요. 학생 형식을 정의할 헤더 파일은 Student.h 라고 정할게요. 학생은 이름, 학번, 체력, 지력, 스트레스, 연속으로 공부한 횟수를 멤버로 가져야겠죠. #define MAX_NAME_LEN 20 typedef struct _Student Student; struct _Student { char name[MAX_NAME_LEN+1];//이름 int num; //번호 int hp; //체력 int iq; //지력 int stress; //스트레스 int scnt; /..

[C언어] 77. 사용자 정의 형식 실습 - 시나리오

77. 사용자 정의 형식 실습 - 시나리오 프로그램을 작성할 때 사용자 정의 형식을 기준으로 소스 파일을 구분하여 개발하면 유지보수 비용을 줄일 수 있어요. 사용자 정의 형식을 헤더에 정의하고 해당 형식의 멤버에 영향을 주는 기능은 소스 파일에 정의하는 형태로 개발하면 개발 비용 뿐만 아니라 C++이나 Java, C#과 같은 OOP 언어를 익히는데도 도움을 줄 수 있죠. 여기에서는 학생을 사용자 정의 형식으로 정의하고 관련 기능을 소스로 정의하여 사용하는 실습을 진행할게요. 실습 시나리오 학생은 학번, 이름, 체력, 지력, 스트레스, 연속으로 공부한 횟수를 멤버로 갖는다. 학번은 순차적으로 부여하며 이름은 생성할 때 입력인자로 전달받는다. 체력은 초기값이 100이며 0에서 100 사이의 값을 유지한다. ..

[C언어] 76. 열거형

76. 열거형 열거형은 표현할 수 있는 값의 종류를 열거하는 형식이예요. 가령 성별을 관리할 때 int 형식을 사용하여 0은 여성, 1은 남성을 표현하기로 약속할 수 있겠죠. 하지만 다른 개발자가 코드를 이해하기 어려울 수 있어요. 이 때 열거형을 사용하면 가독성(쉽게 읽을 수 있는 성질) 높은 프로그램을 작성할 수 있어요. ◈ 성별을 표현할 수 있는 Gender 열거형 정의 #include typedef enum _Gender Gender; enum _Gender{ FEMALE, MALE}; int main() { Gender g = FEMALE; if(g == FEMALE) { printf("여성\n"); } else { printf("남성\n"); } return 0; } ◈ 실행 결과 여성 열거형..

[C언어] 75. 공용체

75. 공용체 공용체는 여러 개의 멤버 중에서 하나의 멤버의 값만을 사용하는 사용자 정의 형식이예요. 공용체를 정의하는 것은 구조체와 비슷해요. 공용체를 정의할 때는 struct 키워드 대신 union을 사용하세요. 공용체는 구조체와 다르게 모든 멤버마다 별도의 메모리를 부여하지 않고 메모리가 제일 큰 멤버 크기의 메모리만 할당해요. unio [태그명] { [멤버 형식] [멤버 이름]; ... 중략 ... }; ◈ 공용체와 구조체의 메모리 크기 비교 #include struct _SDemo { int a; int b; }; union _UDemo { int a; int b; }; int main() { printf("struct _SDemo 크기: %d\n", sizeof(struct _SDemo)); ..

[C언어] 74. 구조체

74. 구조체 프로그래밍 언어에서는 공통적으로 사용할 기본적인 형식들을 제공하죠. 그리고 프로그램 목적에 맞게 개발자가 형식을 정의하여 사용할 수 있는 문법을 제공하고 있어요. 이러한 문법을 사용자 정의 형식이라 불러요. C언어에서 개발자가 형식을 정의하여 사용하는 문법에는 구조체, 공용체, 열거형이 있어요. 구조체와 공용체는 여러 개의 멤버를 하나의 형식으로 묶어 사용할 수 있게 정의하는 문법이예요. 그리고 열거형은 사용할 수 있는 값들을 열거하는 형식이죠. 구조체는 C언어에서 가장 많이 사용하는 사용자 정의 형식이예요. 여러 개의 데이터를 하나의 형식으로 묶어서 정의할 수 있어요. 학생의 번호, 이름을 구조체로 정의하면 학생 구조체 변수 하나만 선언해서 번호와 이름을 사용할 수 있어요. 구조체에 정의..

[C언어] 73. 문자열 정리하기

73. 정리하기 68. 문자열69. 문자열 사용 기초70. 문자열 길이와 strlen 함수71. 문자열 비교와 strcmp 함수72. 문자열 복사 1. 문자열 길이를 구하는 함수를 만드시오. (strlen 함수와 같은 기능을 하는 함수 만들기) 2. 문자열 비교하는 함수를 만드시오. (strcmp 함수와 같은 기능을 하는 함수 만들기) 3. 문자열 복사하는 함수를 만드시오. (strcpy_s 함수와 같은 기능을 하는 함수 만들기) [정답] 디딤돌 C언어 73. 문자열 정리하기

반응형