c语言中长度为0的数组妙用

2017-03-01     浏览次数:

  长度为0的数组在GNU C是可以使用的,在定义一个变长对象的结构体是非常有用的。
  
  请看下例。
  
  struct line {
  
  int length;
  
  char contents[0];
  
  };
  
  struct line *thisline = (struct line *)
  
  malloc (sizeof (struct line) + this_length);
  
  thisline->length = this_length;
  
  显然这样的代码要比下面的定义节省空间
  
  struct line {
  
  int length;
  
  char *contents;
  
  };
  
  struct line {
  
  int length;
  
  char contents[1];
  
  };
*转载请注明出处,更多资料尽在 吾爱编程
返回吾爱编程首页