2025/04/15 2

동적 할당, 구조체

일반적인 배열과 변수는 메모리 안에 변수가 할당된다. 이는 코드가 컴파일 될 때 크기가 정해지기 때문에, 이후 크기를 런타임에 추가적으로 할당 하기 위해서는 동적 할당이 필요하다.동적 할당에는 3가지 방법이있다.-malloc() 가장 자주 사용되는 동적할당 방법이고, 원하는 자료형의 메모리를 직접할당하는 방식이다.int *arr = (int *)malloc(n*sizeof(int));(여기서 사용되는 sizeof는 자료형이나 배열의 크기를 리턴한다. 그러나 배열은 기본적으로 자료형의 크기*전체 수이다.)-calloc() 메모리를 원하는 개수 만큼 정확히 할당하는 방법이다. 이 방법은 malloc(n*sizeof(int))일 경우 calloc(n, sizeof(int))와 같다.int *arr2 = (in..

C, C++ 2025.04.15

구조체가 담긴 배열의 포인터

구조체로 학생의 학번, 이름, 생년월일(정수6개)를 저장하는 구조체를 생성한 후, 구조체를 배열로 만들고, 그 구조체 배열의 주소를 저장하는 포인터 변수를 통해 구조체 배열에 접근하여 원하는 학생 수 만큼 정보를 입력받고 출력하는 코드이 문제는 복잡해보이지만, 해결 방법이 어렵지 않다.기본 라이브러리를 불러온다.#include 이제 struct를 생성한다. struct에는 학번과, 이름, 생년월을을 저장해야 한다.struct student{ int student_num, birthday; char name[1000];}이제 scanf로 학생 수를 입력 받고, VLA문법으로 배열과 포인터를 생성한다.int n;scanf("%d", &n);struct student info[n];struct st..

기타 2025.04.15