动态分配内存空间malloc()
2019-12-27 本文已影响0人
OHNO_开上船的智
void *malloc(unsigned int size);
在stdlib.h头文件中包含该函数,功能:在内存的动态存储区申请一个长度为size字节的连续存储空间。malloc函数会返回一个指针,并指向所分配存储空间的起始地址。如果没有足够的内存空间可以分配,则函数的返回值为空指针NULL。
malloc()函数的参数中经常使用c语言提供的类型长度运算符sizeof(),通过它来计算申请空间的大小。由于不同机器的同一类型所占的字节数有可能不同,所以用sizeof()运算符使程序适应不同的机器,便于程序的一直。
int *p=(int *)malloc(sizeof(int));
申请一个int类型长度的存储空间,并将分配到的存储空间地址转换为int类型地址,赋值于所定义的指针变量p,基类型字节数为int型所占空间。
struct stud *p = (struct stud *)malloc(sizeof(struct stud));
申请可存放struct stud结构体类型数据的空间,将其地址存入指针p中,当struct stud结构体类型的定义改变时,本语句申请空间的大小会随之改变。