반응형

c언어 리스트 (list) - 동적 배열(flexible array) 배열의 길이(length) 활용

 

 

charList 문자 배열을 길이(length) 변수를 활용하여 동적으로 할당 (reallocate)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* Reallocate: allocate a new array with length variable */
#include <stdio.h>
#include <stdlib.h>
 
int main() {
    int length = 0, capacity = 8;
    char *charList = malloc(capacity * sizeof(char));
    printf("length: %d , capacity: %d\n", length, capacity);
 
    length = 8;
    if (length >= capacity) {
        capacity = capacity * 3 / 2;
        charList = realloc(charList, capacity * sizeof(char));
    }
    printf("new length: %d , new capacity: %d\n", length, capacity);
}
cs

 

 

 

 

 

list 정수 배열을 길이(length) 변수를 활용하여 동적으로 할당 (reallocate)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* Reallocate: allocate a new array with length variable */
#include <stdio.h>
#include <stdlib.h>
 
int main() {
    int length = 0, capacity = 4;
    int *list = malloc(capacity * sizeof(int));
    printf("length: %d , capacity: %d\n", length, capacity);
 
    length = 5;
    if (length >= capacity) {
        capacity = capacity * 3 / 2;
        list = realloc(list, capacity * sizeof(int));
    }
    printf("new length: %d , new capacity: %d\n", length, capacity);
}
 
cs

 

 

 

반응형