C语言柔性数组
2015-07-19 15:42
489 查看
#include <stdio.h> #include <string.h> #define N 4 #define STR "abcd" int main() { struct student { }stu; printf("N = %d\n", sizeof(N)); printf("num 5 memery = %d\n", sizeof(5)); printf("char 'd' = %d\n", sizeof('d')); printf("STR = %d\n", sizeof(STR)); printf("a = %d\n",sizeof(stu)); // 在编译器gcc、mingw5下输出0,在vc++6.0中输出1(我使用的mingw5编译器),在vc++6.0中默认结构体最小大小为1字>节(包含空结构体和只含一个char类型的结构体) /* 柔性数组测试 可以参考《C语言深度解剖》 */ printf("\n柔性数组测试\n"); typedef struct test { int i; int a[]; // 此数组前必须包含一个其它成员 }te; printf("sizeof(te) = %d\n", sizeof(te)); // int a[] 不是结构体中的成员 te *p = (te*)malloc(sizeof(te) + sizeof(int) * 100); p->a[0] = 13; printf("p->a[0] = %d\n",p->a[0]); printf("sizeof(p) = %d\n", sizeof(p)); // 大小仍然为4,因为int a[] 不是结构体中的成员 return 0; }
N = 4 num 5 memery = 4 char 'd' = 4 STR = 5 a = 0 柔性数组测试 sizeof(te) = 4 p->a[0] = 13 sizeof(p) = 8
相关文章推荐
- C++之priority_queue
- C++之priority_queue
- C语言柔性数组
- C/C++程序设计07(STL容器和泛型算法)
- C++中的unique(),unique_copy()的用法
- C++学习笔记-1-自增和自减运算符
- C++ 不用临时变量交换两个变量的值——函数对象
- 详解c++指针的指针和指针的引用
- C++std命名空间详解
- [C++ primer]优化内存分配
- 解决Eclipse中C++代码显示Symbol 'std' could not be resolved的问题
- 链表源代码(C语言实现)
- 链表源代码(C语言实现)
- NYOJ 113 字符串替换(C++STL解法)
- C++笔记
- 指针数组与二维数组的应用
- C++学习杂笔(总)
- C++学习笔记36 (模板的细节明确template specialization)和显式实例(template instantiation)
- C++四种类型的转换
- C语言 枚举(enum)、宏定义(#define)、结构体(struct)的一种联合应用