柔性数组
2016-04-14 15:19
204 查看
柔性数组是C99的扩展,简而言之就是一个在struct结构里的标识占位符(不占结构struct的空间),只能在堆上生成
示例代码:
int main(int argc, char *aggv[])
{
struct flexible_array
{
int size;
char str[0];
};
struct flexible_array* fa = (struct flexible_array*)malloc(sizeof(struct flexible_array) + 100);
fa->size = 100;
memset(fa->str, 0, fa->size);
memcpy(fa->str, "This is a string", strlen("This is a string"));
printf("fa->size: %d\nfa->a: %s\n", fa->size, fa->str);
printf("size: %d\n", sizeof(fa));
getchar();
return 0;
}
运行结果如下:
fa->size: 100
fa->a: This is a string
size: 4
示例代码:
int main(int argc, char *aggv[])
{
struct flexible_array
{
int size;
char str[0];
};
struct flexible_array* fa = (struct flexible_array*)malloc(sizeof(struct flexible_array) + 100);
fa->size = 100;
memset(fa->str, 0, fa->size);
memcpy(fa->str, "This is a string", strlen("This is a string"));
printf("fa->size: %d\nfa->a: %s\n", fa->size, fa->str);
printf("size: %d\n", sizeof(fa));
getchar();
return 0;
}
运行结果如下:
fa->size: 100
fa->a: This is a string
size: 4
相关文章推荐
- java中String+String与StringBuilder的append()方法的效率问题
- 怎么将jpg转换成pdf文件
- 数字转换成字符串,int 转换成const char*
- 优先级队列与堆排序
- 236. Lowest Common Ancestor of a Binary Tree
- Android studio 2.0--android增量更新的那些事
- ios socket简单使用
- ios如何添加第三方的字体库
- MassTransit 学习记录(三) 广播 & 负载
- 设计模式——适配器模式
- android------关于query的模糊查询的用法
- 关于进程页表内核部分和内核主页表的关系(Linux 2.6.11)
- 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭
- 汇总--如何计算Gradle脚本中每个task的执行时间
- jFinal开发规范
- 手动编写一个Servlet程序
- iOS开发之JSPatch的基础用法
- ORACLE PARTITION简介
- GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
- 关于用@pathvariable实现响应多个渠道的请求