반응형

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 *= malloc(sizeof(struct vehicle));
    t->= x0;
    t->= y0;
    return t;
}
 
// Drive truck
void drive(struct vehicle *t, int dx, int dy) {
    t->= t->+ dx;
    t->= t->+ dy;
}
 
int main() {
    vehicle truckData = { 1127 };
    vehicle *truck = &truckData;
    printf("truck - x: %d, y: %d\n", truck->x, truck->y);
    
    drive(truck, 1723);
    printf("truck - x: %d, y: %d\n", truck->x, truck->y);
}
cs

 

 

방법 1.

vehicle *truck(int x0, int y0) {
    vehicle *= malloc(sizeof(struct vehicle));
    t->= x0;
    t->= y0;
    return t;
}
cs

 

 

방법 2.

vehicle *truck(int x0, int y0) {
    vehicle *= malloc(sizeof(struct vehicle));
    *= (vehicle) { x0, y0 };    
    return t;
}
cs

 

 

방법 3.

vehicle *truck(int x0, int y0) {
    vehicle *= malloc(sizeof(struct vehicle));
    *= (vehicle) { .x = x0, .y = y0 };
    return t;
}
cs

 

반응형