指针与其存储空间的问题
来源:互联网 发布:微博个性化域名 编辑:程序博客网 时间:2024/05/17 01:59
//下面仅仅是定义一个类型,不会产生变量,所以不存在分配空间的问题
struct data
{
int i;
int j;
};
void main(void)
{
struct data dat1; //定义一个struct data类型的变量,和int i同理。
printf("%d\n", sizeof(struct data)); //8个字节
printf("%d\n", sizeof(dat1)); //8个字节
struct data* pdat1;//定义一个struct data类型的指针,和int *pi 同理。
printf("%d\n", sizeof(pdat1)); //4个字节,就是一个指针的空间,pdat1并没有结构体变量的信息。
pdat1 = (struct data*)malloc(sizeof(struct data)); //申请一个空间,把该空间地址给pdat1.
printf("%d\n", sizeof(*pdat1)); //8个字节
struct data dats1[2];
printf("%d\n", sizeof(dats1)); //16个字节,两个data变量,不是data指针。
dats1[0].i = 20; //可以直接使用数组里面的结构体变量
dats1[0].j = 30;
struct data* dats2[2]; //指针数组,包含两个指针,而不是结构体变量
printf("%d\n", sizeof(dats2)); //8个字节,两个指针的大小
dats2[0]->i = 20; //错误!还没有给dats2[0] 指针分配空间
dats2[0]->i = 20; //错误!还没有给dats2[0] 指针分配空间
dats2[0] = (struct data*)malloc(sizeof(struct data)); //分配空间
dats2[0]->i = 20; //ok
dats2[0]->i = 20; //ok
}
struct data
{
int i;
int j;
};
void main(void)
{
struct data dat1; //定义一个struct data类型的变量,和int i同理。
printf("%d\n", sizeof(struct data)); //8个字节
printf("%d\n", sizeof(dat1)); //8个字节
struct data* pdat1;//定义一个struct data类型的指针,和int *pi 同理。
printf("%d\n", sizeof(pdat1)); //4个字节,就是一个指针的空间,pdat1并没有结构体变量的信息。
pdat1 = (struct data*)malloc(sizeof(struct data)); //申请一个空间,把该空间地址给pdat1.
printf("%d\n", sizeof(*pdat1)); //8个字节
struct data dats1[2];
printf("%d\n", sizeof(dats1)); //16个字节,两个data变量,不是data指针。
dats1[0].i = 20; //可以直接使用数组里面的结构体变量
dats1[0].j = 30;
struct data* dats2[2]; //指针数组,包含两个指针,而不是结构体变量
printf("%d\n", sizeof(dats2)); //8个字节,两个指针的大小
dats2[0]->i = 20; //错误!还没有给dats2[0] 指针分配空间
dats2[0]->i = 20; //错误!还没有给dats2[0] 指针分配空间
dats2[0] = (struct data*)malloc(sizeof(struct data)); //分配空间
dats2[0]->i = 20; //ok
dats2[0]->i = 20; //ok
}
1 0
- 指针与其存储空间的问题
- struct的存储空间大小问题
- 关于“存储空间不足”的问题
- 三级指针四级存储空间的开辟~
- c++指针和存储空间的tips
- 字符指针与其他类型的指针的使用区别
- 关于手机的永久存储空间限制问题
- 一个字节引发的存储空间问题
- 一个字节引发的存储空间问题
- 指针存储空间个数
- Rust 指针与其对应的C样式指针
- 二维指针、数组指针和指针数组存储空间的动态分配和释放
- 主键约束与其索引的问题
- listview与其他控件的布局问题
- 事务并发的可能问题与其解决方案
- C++程序存储空间问题
- Stc89c52存储空间大小问题
- 点阵字模存储空间问题
- mysql之基于日志点的复制
- Android逆向之旅---爆破应用签名的一种全新高效方式(Native+服务器验证)
- 关于dom的一些基础知识-来自w3shool.com.cn
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
- java简单酒店管理程序
- 指针与其存储空间的问题
- 什么是无监督学习(监督学习,半监督学习,无监督聚类)?
- 学习淘淘商城第二十五课(CMS内容管理系统表设计及内容工程搭建)
- 权限校验过滤器
- linux用户与用户组管理
- springmvc之自定义视图BeanNameViewResolver
- 算法——猴子吃桃问题
- HDU 1251 统计难题 (Trie树——字符串算法)
- 在eclipse中用maven创建web项目