동적할당 2

[C언어] 10. 구조체와 동적할당

배열은 "같은 자료형"만 묶을 수 있었다. 하지만 학생 한 명은 학번(정수), 이름(문자열), 학점(실수)처럼 서로 다른 자료형의 정보로 이뤄진다. 이렇게 여러 자료형을 하나로 묶어 새 자료형을 만드는 것이 구조체다. 여기에 실행 중 메모리를 빌리는 동적 할당까지 더하면, 마침내 연결 리스트 같은 자료구조를 만들 수 있다.1. 구조체 (Structure)구조체(Structure)서로 다른 자료형의 여러 변수를 하나로 묶어 새로운 자료형을 정의하는 문법이다. 관련 있는 데이터를 한 덩어리로 다룰 수 있게 해준다. struct student { int number; // 학번 char name[10]; // 이름 double grade; // 학점};struct 키워드로 정의를 ..

language/c 2026.09.07

[C언어] 09. 포인터 (Pointer)

포인터는 C언어를 어렵게 만드는 동시에 강력하게 만드는 핵심 개념이다. 나도 여기서 한 번 막혔는데, 사실 한 문장으로 요약된다. 포인터는 값이 아니라 "값이 있는 주소"를 담는 변수다.지금까지 scanf에서 &를 붙였던 것, 배열 이름이 곧 주소였던 것이 모두 이 포인터로 이어졌다.1. 포인터란?모든 변수는 메모리 어딘가에 저장되고, 그 위치를 가리키는 주소를 갖는다.포인터(Pointer)다른 변수의 주소를 저장하는 변수다. 일반 변수가 "값"을 담는다면, 포인터는 "그 값이 사는 집 주소"를 담는다. 그래서 어떤 타입을 가리키든 포인터 자체의 크기는 일정하다(주소는 결국 하나의 정수이므로).두 개의 핵심 연산자가 있다.주소 연산자 &: 변수의 주소를 구한다. &i는 변수 i의 주소.간접 참조(역참조)..

language/c 2026.08.31