牛骨文教育服务平台(让学习变的简单)
博文笔记

结构体中的长度可变数组。

创建时间:2011-06-30 投稿人: 浏览次数:1949

#include <stdio.h>

struct line {
  int length;
  char contents[0];
};


struct block {
  int length;
  char contents[];  /* xx[] is at the end of the struct only. */
//  int text[20]; /* contexts[]只能在结构体的最尾处。 */
};


int main()
{
    struct line *thisline = (struct line *)malloc(sizeof(struct line) + 10);
    thisline->length = 10;
   
    struct block *thisblock = (struct block *)malloc(sizeof(struct block) + 10);
    thisblock->length = 10;
    printf("sizeof(struct line) = %d/n",sizeof(struct line));  /* 打印结果是4. */
    printf("sizeof(struct block) = %d/n",sizeof(struct block));
}
---------------------------------------------------------------------------------------

liudan@liudan-desktop:/media/LIUDAN/aa/array_len_zero$
liudan@liudan-desktop:/media/LIUDAN/aa/array_len_zero$ ./arr
sizeof(struct line) = 4
sizeof(struct block) = 4
liudan@liudan-desktop:/media/LIUDAN/aa/array_len_zero$

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。