结构体中最后一个成员数组定义0个元素的意义
来源:互联网 发布:网络推广人员岗前培训 编辑:程序博客网 时间:2024/05/21 04:22
实际用时采取这样:
struct MyData *p = (struct MyData *)malloc(sizeof(struct MyData )+strlen(str))
这样就可以通过p->data 来操作这个str。
示例:
#include <iostream> using namespace std; struct MyData { int nLen; char data[0]; }; int main() { int nLen = 10; char str[10] = "123456789"; cout << "Size of MyData: " << sizeof(MyData) << endl; MyData *myData = (MyData*)malloc(sizeof(MyData) + 10); memcpy(myData->data, str, 10); cout << "myData's Data is: " << myData->data << endl; free(myData); return 0; }
输出:
Size of MyData: 4
myData's Data is: 123456789
由于数组没有元素,该数组在该结构体中分配占用空间,所以sizeof(struct Mydata) = 4。
malloc申请的是14个字节的连续空间,它返回一个指针指向这14个字节,强制转换成struct INFO的时候,前面4个字节被认为是Mydata结构,后面的部分拷贝了“123456789”的内容
阅读全文
0 0
- 结构体中最后一个成员数组定义0个元素的意义
- 结构体最后定义一个char p[0];这样的成员有何意义(转)
- 结构体成员最后一个定义0长度数组
- 2-结构体的最后一个成员的定义-C语言中的柔性数组-
- 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
- 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
- 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
- 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)
- 1---结构体中最后一个成员为[0]长度数组的用法
- 灵活/弹性数组成员--结构体中0个元素的数组
- 灵活/弹性数组成员--结构体中0个元素的数组
- 灵活/弹性数组成员--结构体中0个元素的数组
- C/C++ 学习笔记:结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
- 数据结构中申明一个含有0个元素的数组的意义
- 在结构体最后定义一个长度为0的字符数组(技巧)
- 在结构体最后定义一个长度为0的字符数组
- 在结构体最后定义一个长度为0的字符数组(技巧)
- 在结构体最后定义一个长度为0的字符数组(技巧)
- hdu1166
- 笔试手记-----20170826之360
- golang版使用队列秒解数独
- 关于《Java编程思想》垃圾回收P89-P90部分补充解释
- Linux下LAMP+Phpwind环境搭建
- 结构体中最后一个成员数组定义0个元素的意义
- 1014. 福尔摩斯的约会 (20)
- [JAVAWEB]10.JSP中的JavaBean和动作元素(三)
- ACM 1392 Surround the Trees
- 程序员必须掌握的8大排序算法(一):直接插入排序
- (百度百科)CSS盒子模型
- 572. Subtree of Another Tree
- Shader学习基础之六UsePass和#include
- HDU 4283 You Are the One(区间DP)