반응형
c언어 메모리 할당시 구조체 초기화 방법
메모리 할당 (malloc) 활용한 구조체
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | /* Struct malloc */ #include <stdio.h> #include <stdlib.h> // Structure 'vehicle' struct vehicle { int x, y; }; // typedef struct 'vehicle' typedef struct vehicle vehicle; // Allocate structure vehicle *truck(int x0, int y0) { vehicle *t = malloc(sizeof(struct vehicle)); t->x = x0; t->y = y0; return t; } // Drive truck void drive(struct vehicle *t, int dx, int dy) { t->x = t->x + dx; t->y = t->y + dy; } int main() { vehicle truckData = { 11, 27 }; vehicle *truck = &truckData; printf("truck - x: %d, y: %d\n", truck->x, truck->y); drive(truck, 17, 23); printf("truck - x: %d, y: %d\n", truck->x, truck->y); } | cs |
방법 1.
vehicle *truck(int x0, int y0) { vehicle *t = malloc(sizeof(struct vehicle)); t->x = x0; t->y = y0; return t; } | cs |
방법 2.
vehicle *truck(int x0, int y0) { vehicle *t = malloc(sizeof(struct vehicle)); *t = (vehicle) { x0, y0 }; return t; } | cs |
방법 3.
vehicle *truck(int x0, int y0) { vehicle *t = malloc(sizeof(struct vehicle)); *t = (vehicle) { .x = x0, .y = y0 }; return t; } | cs |
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #47] 파일 입출력 (IO) - 텍스트 파일 문자열 읽기 출력 (0) | 2020.07.16 |
---|---|
[C언어 #46] 입출력 - IO (Input Output) (0) | 2020.07.16 |
[C언어 #44] 메모리 할당 해제 (malloc / free) - 구조체 (struct) 적용 (0) | 2020.07.16 |
[C언어 #43] 메모리 스택 (stack) - 팩토리얼 (factorial) 재귀함수 (0) | 2020.07.15 |
[C언어 #42] 메모리 할당 해제 (malloc / free) - 문자열 복사 (0) | 2020.07.14 |