[c] 가변길이 구조체 - dsindex/blog GitHub Wiki
예를 들어, linked list나 tree를 만들때 하나의 node에 들어가야할 데이터가 고정된 사이즈가 아니라 가변길이인 경우가 있다. 이때 node의 데이터 부분을 malloc으로 그때마다 할당해서 사용하는 방법은 여러가지로 문제가 많다.
데이터를 참조하기 위해서 node -> data 두번의 참조연산이 필요하다.
더구나 memory에 여기저기 흩어져서 존재하기 때문에 locality가 떨어지는 문제도 있다.
node 자체와 data가 연속된 메모리 공간에 있으면 한번에 cache로 읽어드릴수 있기 때문에
더 빠른 연산이 가능하다. (그래서 data[1] 혹은 data[0]와 같은 스킬을 사용한다는...)