목록프로그래밍 언어/C언어 (36)
나의 IT일지
구조체는 배열과 같이 변수의 집합이지만, 변수는 같은 자료형을 가진 변수의 집합인 저장공간으로, 하나의 속성에 여러 데이터를 저장하고 관리할 때 사용한다. 하지만 구조체는 다른 자료형인 변수여도 하나의 집합으로 만든 자료형으로, 여러 속성을 가진 대상의 데이터를 저장, 관리할 때 사용한다. #include #include void find(char*); //선생님의 신상정보(이름 주소 전번 강의과목 생일)를 구조체로 저장 struct teacher { char name[11]; char address[30]; char tel[11]; char lesson[20]; long birth; }; void main() { char name[100]; int a; printf("이름 입력:"); scanf("%s..
우리는 배열을 통해 변수를 묶어서 데이터를 관리한다. 배열같은 경우는 같은 자료형의 변수만 묶어서 사용할 수 있다. 하지만, 우리는 데이터의 자료형이 다른 변수를 한번에 묶어서 관리해야 하는 경우가 존재한다. 예를들면, 어느 선생님들의 이름과 성별, 전화번호나 주소등등 개인정보를 저장할 경우, 서로 다른 배열을 만들어서 저장해야한다. #include #include // strcmp함수를 사용하기 위한 헤더파일 void find(char*); void main() { char name[100]; int a; printf("이름 입력:"); scanf("%s", name); find(name); } void find(char* find_name){ char* name[] = { "이창호", "김성주", "..
동적 할당 메모리란 프로그램의 실행 도중, 할당 받은 메모리로, 정적 메모리를 사용하면 메모리의 낭비가 생기는 것을 방지하기 위해 사용된다. 동적 메모리 할당 1 일반적으로 변수나 배열은 소스코드에서 코드나 배열을 생성해두면, 프로그램을 실행하는 순간 사용할 메모리의 크기를 고려하여 메모리에 주소가 할당되는 경우가 일반적이다. 이를 정적 메 my-it-diary.tistory.com 동적메모리는 "stdlib.h"안에 있는 "malloc()"함수를 사용하여 메모리를 실행 도중에 생성 하는 것 "malloc()"함수는 주소값이 결과값으로 나오기 때문에, 포인터에 저장해서 사용해야 한다. 즉 "포인터 = (포인터형*)malloc(sizeof(자료형));"를 통해 포인터에 주소를 저장 malloc함수의 결과는..
일반적으로 변수나 배열은 소스코드에서 코드나 배열을 생성해두면, 프로그램을 실행하는 순간 사용할 메모리의 크기를 고려하여 메모리에 주소가 할당되는 경우가 일반적이다. 이를 정적 메모리라고 한다. 하지만 프로그램의 실행도중에 메모리를 할당받아야 하는 경우가 있는데, 이를 동적 메모리 할당이라고 한다. 그렇다면 동적메모리를 사용하는 이유는 뭘까? 정적메모리는 프로그램이 실행되기 전에 코딩된 크기만큼 할당된다. 이러한 크기는 실행중에는 변경이 불가능하다. 따라서 크기를 변경하기 위해서는 코드를 일일히 바꿔야 하며, 사용하지 않는 메모리가 발생하여 효율적이지 못하다. 그래서 동적메모리를 사용함으로써, 프로그램이 실행되고 있는 순간에도 사용자가 사용할 배열의 크기만큼 지정하여 메모리를 좀 더 효율적으로 사용 할 ..
포인터는 변수여서 배열의 요소로 사용할 수 있고, 배열은 저장공간이기에 포인터에 저장할 수 있다. 즉, 포인터를 요소로하여 만든 배열을 포인터 배열, 배열의 주소를 저장하는 포인터를 배열 포인터라고 한다. 이 둘의 이름은 비슷하지만, 사용하는 방법은 다르다. 그래서 우리는 포인터 배열과 배열 포인터에 대해서 알아야 한다. 포인터 배열 우선 포인터 배열에 대해서 알아보자. 포인터 배열이란 포인터 변수들를 묶어놓은 묶음으로, 처리할 데이터의 주소를 모아 데이터를 쉽게 처리하기 위해서 사용이 된다. 포인터형 * 포인터배열명[요소개수] 위의 구조는 포인터 배열의 선언 구조로, 포인터에 저장할 주소를 가진 변수의 자료형을 포인터형칸에 적으며, 배열의 이름인 배열명, 배열에 몇 개의 포인터를 만들 것인지의 요소 개..
포인터란 변수의 주소를 저장하는 공간으로, 변수를 사용할 때 변수의 이름이 아닌 주소로 접근하기 위해 사용한다. 포인터의 기본 C언어는 컴퓨터의 메모리 주소를 이용해 메모리 안에 기억되어 있는 값을 제어할 수 있는 시스템 프로그래밍이 가능한 언어이다. 즉, 컴퓨터안의 메모리 주소에 접근이 가능하며, 그 안의 값을 my-it-diary.tistory.com 생성방법 주소저장 변수값 접근 포인터형 * 포인터명; ex) int *ptr; 포인터=&변수명; ex) ptr = ar; * 포인터명; ex) * ptr; 이때, 생성방법에서 포인터형은 생성할 포인터의 자료형이 아닌, 포인터에 저장할 변수의 자료형을 적는다. 포인터에 저장되어 있는 주소 값도 데이터이며, 데이터를 저장하는 공간은 변수라고 했다. 즉, 주..