bycj.net
当前位置:首页 >> C语言中,Color[n] = (ChAr *)mAlloC(sizEoF(ChAr)*... >>

C语言中,Color[n] = (ChAr *)mAlloC(sizEoF(ChAr)*...

color[n] = (char *)malloc(sizeof(char)*(strlen(str)+1)) 从左到右讲起, 首先等号左边是 一个 char* 的数组的一个元素,也就是一个char* : color[n]; 右边 是用 malloc分配堆空间内存, malloc的返回值类型是void*,需要用(char*)来强转类型以和等

malloc函数用于向操作系统申请内存,声明在stdlib.h中,原型如下:void *malloc(unsigned int num_bytes); malloc申请num_bytes指定大小的内存,成功则返回指向这块内存的指针,失败则返回null. 这条语句含义就是申请内存,并将指针转换为char *类型赋值给color[n],申请的大小为sizeof(char) * (strlen(str) + 1). sizeof(char)就是一个char类型占用的空间大小,strlen(str)为字符串str的长度,因为字符串最后还有个'\0'表示字符串结尾,所以这一块就表示str字符串占用的内存空间的总大小.

sizeof(char)计算char类型占用的字节数.sizeof(char)== 1malloc申请动态内存(char *)把指针强制转换为char类型指针.合起来就是动态申请一个char类型大小的内存.

int *t;表示定义int型的指针变量t(char*)实现指针的强制类型转换(因为后面的那个函数返回值的类型是void类型的指针)malloc还有后面的括号里的整个是一个函数,返回void型指针,用来申请额外的内存空间,返回的指针指向所申请内存空间的首地址,若内存不够申请失败则返回NULLmalloc后面的括号里的内容是对该函数输入的参数,意义是所需要申请的内存的总大小,上面的式子中用的是一个运算结果的值当做参数值输入那个算式的n应该是你要存储的对象的个数,sizeof函数用来算单个char类型变量的大小,相乘的结果就是总大小整体来说,就是在为n个char类型的变量申请存储空间,把申请到空间的首个单元的地址存到指针t中

char **p;定义一个二维指针p=(char **)malloc(sizeof(char*) *5); 先分配行空间for( i=0;i 评论0 0 0

char *p只是定义了一个指针类型的变量,并没有给该指针分配空间,进行初始化,不能通过该指针进行返问. char *p=(char*)malloc(sizeof(char)),定义了一个指针类型的变量p,并给该指针动态分配了一个字符的空间,可以通过该指针进行访问

malloc是个动态存储分配的函数,返回值是分配单元的地址 (char *)malloc(sizeof(char)*(strlen(str)+1)); 这句前面的(char *)是强制类型转换为基类型为char的指针,后面的(sizeof(char)*(strlen(str)+1)中sizeof(char)是求char类型所占字节数,然后乘以字符串所占字节数(strlen(str)+1)..得出的数就是开辟空间的字节数!

这是个申请空间的语句,申请的类型是字符指针数组char**后面是申请的大小attrNums*sizeof(char*)mAttrName是申请返回的地址

申请分配n个单位char内存空间,并把指针赋予t

p = (char *) malloc(sizeof(char) * 20);就相当于char p[20];只不过用malloc()直接分配了内存单元.

相关文档
realmemall.net | rtmj.net | kcjf.net | ntjm.net | fpbl.net | 网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com