struct{ int i; int j; int k; int strlen; char str[1]; 这句是什么意思,没看明白 }; 10
2016-08-07 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
struct函数用于向操作系统申请内存,声明在stdlib.h中,原型如下:
void *struct(unsigned int num_bytes);
malloc申请num_bytes指定大小的内存,成功则返回指向这块内存的指针,失败则返回NULL。
这条语句含义就是申请内存,并将指针转换为char *类型赋值给color[n],申请的大小为sizeof(char) * (strlen(str) + 1)。
sizeof(char)就是一个char类型占用的空间大小,strlen(str)为字符串str的长度,因为字符串最后还有个'\0'表示字符串结尾,所以这一块就表示str字符串占用的内存空间的总大小。
void *struct(unsigned int num_bytes);
malloc申请num_bytes指定大小的内存,成功则返回指向这块内存的指针,失败则返回NULL。
这条语句含义就是申请内存,并将指针转换为char *类型赋值给color[n],申请的大小为sizeof(char) * (strlen(str) + 1)。
sizeof(char)就是一个char类型占用的空间大小,strlen(str)为字符串str的长度,因为字符串最后还有个'\0'表示字符串结尾,所以这一块就表示str字符串占用的内存空间的总大小。
追问
我可能没写明白,那是个结构体。里面 int strlen 和 char str[1] 这两句,貌似应该是保存一个字符串和它的长度的,我没看明白应该怎么使用。为什么不用 int strlen 和 char* str这样的声明呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询