anewbies
2015-11-09 14:03关于结构体指针malloc不够的问题,求教!
5定义了一个结构体类型:
typedef struct _tag_str{
char * first;
short second;
}str ,*pstr;
然后再定义一个结构体
typedef struct _tag_str1{
pstr first;
float second;
}str1,*pstr1;
定义一个变量 pstr1 strr;
在对strr初始化:strr=(pstr1)malloc(sizeof(str1)), 这样其实malloc的空间大小只是一个
float的大小和一个指针变量的大小,并不是两个结构体合起来的大小,这时我为了初始化
strr->first这个结构体指针 做这样的操作:strr->first=(pstr)malloc(sizeof(str));又开
辟一个空间,现在的烦恼是既然strr的位于first的地方头一回空间开辟的只是一个指针的大小,那么第二回在这个地方又开辟了一个sizeof(str)大小的空间,这样做是不是超出了第一次开辟的空间,还是两个空间在内存中本来就是两个地方?假如把第二个结构体中的第一个变量换成str first就不存在这样的疑问了,因为第一次malloc的时候一次把空间申请够了。
- 点赞
- 回答
- 收藏
- 复制链接分享
4条回答
为你推荐
- c语言数据结构链表空指针问题
- c
- 源代码
- malloc
- 链表
- 指针
- 2个回答
- 关于c语言的二级指针问题
- c
- 指针
- 3个回答
- C_语言______指针问题
- c
- 内存
- 图片
- malloc
- 指针
- 4个回答
- malloc怎么返回结构体指针数组的首地址
- malloc
- 结构
- 指针
- 3个回答
- C语言malloc内存分配的问题
- c
- malloc
- 内存分配
- 3个回答
换一换