码迷,mamicode.com
首页 > 编程语言 > 详细

零长度数组意义

时间:2015-04-03 11:42:16      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

在_C++ Primer_动态数组中提到:动态分配一个空数组是合法的。

size_t n = get_size();
int* p = new int[n];
for(int* q = p; q != p + n; ++q)

char arr[0];//错误
char cp = new char[0];

当我们用new分配一个大小为0的数组时,new返回一个合法的非空指针。此指针保证与new返回的其他任何指针不相同,对于零长度的数组来说,此指针就像尾后指针一样。我们可以像尾后迭代器一样使用这个指针。

陈皓博客C语言结构体里的成员数组和指针中,提到零长度数组意义。

在某一结构末尾如定义类似 char bytes[0] 的零长数组,表示该结构不定长,可通过数组的方式进行扩展。结构中必包含一个长度信息。结构本身类似于一个信息头。同时,此结构只能通过堆方式分配内存。

Reference

[1].http://blog.csdn.net/wade23/article/details/4510971

[2].http://coolshell.cn/articles/11377.html

零长度数组意义

标签:

原文地址:http://my.oschina.net/lvyi/blog/395565

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!