
c언어 포인터 지금 까지 배운 것중에 가장 이해가 안돼서 정리 포인터란? c언어에서 변수가 존재하는 위치(주소값)를 저장하는 변수 type*pointer; int * pa = &a; (4바이트의 영역을 int type의 변수로 취급 가능) *pa는 포인터 &a; 주소 - 주소를 얻는 방법은 변수 앞에 & 붙이기 주소값은 정확히 한지점을 가르킴 *&는 서로 상쇄되는 관계 배열이란? 시작과 끝이 있는 (길이가 있는), 같은 타입이 연속되는 자료구조 배열 크기는 항상 상수로 사용 int arr[10]; 40 바이트의 연속(4*10) int*pa =&a; 주소로 지정 int arr[5]; 5의 배열을 같는 정수형 arr []안은 길이를 의미 포인터 연산 ex) printf("%d\n",pa); printf("%..
동적할당 : 메모리를 힙에서 할당 받는 방식 malloc을 통해서 메모리의 크기를 자유롭게 요청 정적할당 : 메모리를 스택에서 할당 받는 방식 컴파일 타임에 미리 결정된 크기만 int arr[20]; // 컴파일 타임에 결정 int * arr = malloc(sizeof(int)*5); //런타임에 결정 사람의 이름과 나이를 저장하는 프로그램 #include #include // malloc 사용시 추가해야함 #define NAME_SIZE 20 int main() { printf("==이름과 나이를 입력하는 프로그램==\r\n"); int count; int size = NAME_SIZE; while (1) { printf("몇명의 사람을 입력할겁니까?"); scanf("%d", &count); if ..