3.3.33. 길이가 0인 배열

길이가 0인 배열을 사용할 수 있습니다. 이 배열은 malloc된 데이터 구조체의 헤더에서 사용할 수 있으며, 예를 들면 다음과 같습니다.

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

typedef struct {
    int length;
    char letters[0];
    } linet;

linet* Zero_Length_0(char *arg)
{
    linet * linep = malloc (sizeof (linet) + strlen(arg) + 1 );
    strcpy (linep->letters, arg);
    return linep;
}

char * aString="this is a simple string";
int main() {
  printf("String: '%s'\n", Zero_Length_0(aString)->letters);
  return 0;
}

GNU 모드에서만 지원됩니다.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0205GK
Non-Confidential